首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Google pnacl:如何使用编译器/链接器

Google pnacl:如何使用编译器/链接器
EN

Stack Overflow用户
提问于 2013-04-07 22:03:42
回答 2查看 1.4K关注 0票数 1

我想使用PNacl编译hello_world驱动程序;唯一的问题是我不知道将哪些选项传递给编译器。

简单地说,这里的目的是从.cc (C++文件)转到.bc (一些我不太了解的llvm格式),再从那里转到.pexe。

以下是我的尝试:

代码语言:javascript
运行
复制
 $ TC_PATH=/opt/nacl/pepper_26/toolchain/linux_x86_pnacl/host_x86_64/bin
 $ $(TC_PATH)/clang++ hello_world.cc -o hello_world.bc -I/opt/nacl/pepper_26/include

这么多就行了。现在,链接步骤失败了:

代码语言:javascript
运行
复制
 $ $(TC_PATH)/clang++ hello_world.bc -o hello_world
 /tmp/hello_world-l8UCWM.o: file not recognized: File format not recognized

如果我这样做了

代码语言:javascript
运行
复制
 $ $(TC_PATH)/clang++ hello_world.bc -o hello_world.pexe --verbose

我看到驱动程序试图链接到我的系统链接器,这当然不会起作用:

代码语言:javascript
运行
复制
 ...
 "/usr/bin/ld" --eh-frame-hdr "
 ...

我试着用这个东西挖掘一些Makefile,但到目前为止我只找到了this one,而且似乎已经过时了。我应该向工具传递哪些标志?

EN

Stack Overflow用户

回答已采纳

发布于 2013-04-09 13:56:31

正如您在回答中提到的,SDK中的Makefiles支持调用pnacl编译器。所有面向用户的工具都在$(SDK_ROOT)/toolchain/linux_x86_pnacl/newlib/bin中,或者在Windows或Mac上与之相当的版本。当像普通编译器/链接器驱动程序一样使用时,pnacl-clang (和pnacl-clang++)将在编译时生成可移植的目标文件,并在链接时生成可移植的可执行文件(称为.pexe文件)。您可以使用pnacl-translate工具将pexe转换为x86-64、x86-32或arm本机客户端可执行文件( nexe ),其使用方式与nacl-gcc生成的nexe文件的使用方式相同。不久还将支持直接使用pexe文件进行浏览器内翻译。

票数 3
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15863257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档