我的目标是为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
发布于 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。一旦安装好它,如果您使用来自DEPS的gclient,它将由本地客户端depot_tools挂钩自动更新。
否则,可以使用系统gcc使用--gcc选项编译--gcc工具链。这肯定会在Ubuntu14.04上工作,因为我们开发的PNaCl系统。
顺便说一句,我已经启动了另一个文档,它包含了构建过程的更多细节(即使它的焦点不是您感兴趣的),当然还有toolchain_build_pnacl.py的-h标志及其源代码。
发布于 2014-10-28 18:05:09
你能提供更多关于错误的信息吗?您可能需要向上滚动(错误与构建的其他部分交织在一起,因为它是并行构建的)。为了帮助调试这一点,您还可以在特定目标上运行toolchain_build/toolchain_build_pnacl.py,并减少正在进行的构建量,例如,您可以:
toolchain_build/toolchain_build_pnacl.py llvm_x86_64_linux --verbose --install toolchain/linux_x86/pnacl_newlibFYI,当您重新运行toolchain_build/toolchain_build_pnacl.py脚本时,不需要重新指定--同步和-clobber。
还可以在调试问题时手动运行make命令。无论如何,我们都想解决你遇到的问题!
发布于 2014-10-30 15:49:13
要使用系统编译器而不是来自third_party/llvm_build/...的编译器,您可能需要将--gcc选项传递给构建脚本。尽管如此,您仍然不太可能在Ubuntu14.04下成功构建工具链。
我使用Ubuntu14.04,为了构建pnacl工具链,我设置了Ubuntu12.04 色度环境。在其中,我可以使用以下命令成功构建工具链:
# 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_dirPS: I将/proc、/dev、/dev/pts、/sys、/run、/run/shm、/tmp安装到我的chroot环境中,一切都很顺利。如果不安装这些目录,一些构建脚本可能会失败,尽管我不确定。
https://stackoverflow.com/questions/26609252
复制相似问题