首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构建pnacl工具链

如何构建pnacl工具链
EN

Stack Overflow用户
提问于 2014-10-28 13:11:31
回答 3查看 878关注 0票数 0

我的目标是为pnacl工具链创建一些新的功能。在这样做之前,我认为我应该首先成功地构建pnacl工具链。

11/04更新

终于起作用了。一些软件包(野牛,bison,flex)我没有安装,导致了这个问题。

11/03更新

我使用ubuntu-14.04.1-桌面- as 64作为我的系统

此外,ubuntu-12.04.5-桌面-amd64 64现在正在测试11/03更新

我一直跟随着文件的脚步。在我运行toolchain_build_pnacl脚本之前一切都很顺利

因此,我在这里添加新的错误消息:

如果我运行脚本使用gcc编译

工具链构建/工具链构建_pnacl.py-gcc-详细-同步-安装工具链/linux_x86/pnacl_newlib

然后,以下错误消息是

gcc -DHAVE_CONFIG_H -I.-I./src/binutils/gold-I./src/binutils/gold-I./src/binutils/gold/.包括-I./src/binutils/gold/../elfcpp-DLOCALEDIR=“\”/共享/locale\“-DBINDIR=”\“/bin\”\“/bin\”/arm-pc-nacl/bin\“-DTOOLLIBDIR=”“\”/arm-pc-nacl/lib\“-W -Wall -Wstrict原型- -Wshadow -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -f随机-种子= yyscript.o -Wno-扩展-偏移-Wno-绝对值-Wno-未使用-函数-const-变量-Wno-不需要-内部-声明-未使用-私有-字段-Wno-格式-安全-MT yyscript.o -MD -MP -MF . .deps/yyscript.Tpo -c -O yyscript.o yyscript.c yyscript.c:1:1: error:返回类型默认值为‘int’-Werror=返回类型yyscript.c:1:1: yyscript.c:1:1: function 声明不是原型所有被视为错误的警告make4:*yscript.o错误1

如果我使用默认的clang运行它来编译

工具链_构建/工具链_构建_pnacl.py-详细--clobber -安装工具链/linux_x86/pnacl_newlib

然后生成以下错误消息

/home/albaforia/SVN/nativeclient/third_party/llvm-build/Release+Asserts/bin/clang -DHAVE_CONFIG_H -I.-I./src/binutils/gold-I./src/binutils/gold-I./src/binutils/gold/包括-I./src/src/binutils/gold/././elfcpp-DLOCALEDIR=“\”/共享/locale\“-DBINDIR=”\“/bin\”\“-DTOOLBINDIR=”/arm-pc-nacl/bin\“-DTOOLLIBDIR="\"/arm-pc-nacl/lib\"“-W -Wall - -MT原型- -Wshadow -Werror -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -f随机-种子= yyscript.o -Wno扩展-偏移-Wno-绝对值-Wno-未使用-函数-Wno-未使用-const-变量-Wno-不需要-内部-声明-未使用-私有-字段-Wno-格式-安全-MT yyscript.o -MD -MP -MF . .deps/yyscript.Tpo -c yyscript.o yyscript.c yyscript.c:1:1: yyscript.c:1:1:类型说明符缺失,默认为'int‘-Werror,-W隐-int(){返回0;}^~~1错误产生。make4:*yscript.o错误1

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-30 17:03:17

默认情况下,PNaCl工具链使用下载的clang二进制文件构建,因为谷歌的自动构建程序运行Ubuntu12.04,而这些系统上的gcc无法构建最新版本的LLVM。因此有两个选项:如果您使用铬的depot_tools来获取本地客户端源,您可以很容易地从native_client run tools/clang/scripts/update.sh的父目录中获得构建器使用的同一个编译器的副本,该目录将下载并安装toolchain_build_pnacl.py所期望的目录中的clang。一旦安装好它,如果您使用来自DEPSgclient,它将由本地客户端depot_tools挂钩自动更新。

否则,可以使用系统gcc使用--gcc选项编译--gcc工具链。这肯定会在Ubuntu14.04上工作,因为我们开发的PNaCl系统。

顺便说一句,我已经启动了另一个文档,它包含了构建过程的更多细节(即使它的焦点不是您感兴趣的),当然还有toolchain_build_pnacl.py-h标志及其源代码。

票数 2
EN

Stack Overflow用户

发布于 2014-10-28 18:05:09

你能提供更多关于错误的信息吗?您可能需要向上滚动(错误与构建的其他部分交织在一起,因为它是并行构建的)。为了帮助调试这一点,您还可以在特定目标上运行toolchain_build/toolchain_build_pnacl.py,并减少正在进行的构建量,例如,您可以:

代码语言:javascript
复制
toolchain_build/toolchain_build_pnacl.py llvm_x86_64_linux --verbose --install toolchain/linux_x86/pnacl_newlib

FYI,当您重新运行toolchain_build/toolchain_build_pnacl.py脚本时,不需要重新指定--同步和-clobber。

还可以在调试问题时手动运行make命令。无论如何,我们都想解决你遇到的问题!

票数 1
EN

Stack Overflow用户

发布于 2014-10-30 15:49:13

要使用系统编译器而不是来自third_party/llvm_build/...的编译器,您可能需要将--gcc选项传递给构建脚本。尽管如此,您仍然不太可能在Ubuntu14.04下成功构建工具链。

我使用Ubuntu14.04,为了构建pnacl工具链,我设置了Ubuntu12.04 色度环境。在其中,我可以使用以下命令成功构建工具链:

代码语言:javascript
复制
# get sources for NaCl itself
gclient config http://src.chromium.org/native_client/trunk/src/native_client@13992 --name native_client
gclient sync -j16

cd native_client
# sync sources for binutils, llvm, etc.
toolchain_build/toolchain_build_pnacl.py --verbose --sync-only
# build and install toolchain
toolchain_build/toolchain_build_pnacl.py --verbose --gcc --install install_dir

PS: I将/proc/dev/dev/pts/sys/run/run/shm/tmp安装到我的chroot环境中,一切都很顺利。如果不安装这些目录,一些构建脚本可能会失败,尽管我不确定。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26609252

复制
相关文章

相似问题

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