我仍在努力构建示例。 clang进程总是失败并返回127.
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/host_x86_32/bin/clang.exe \
-c testing.cc -Wall \
-I/home/ned/nacl_sdk/pepper_canary/include \
-I/home/ned/nacl_sdk/pepper_canary/include/pnacl
这不会产生诊断,也不会产生任何输出。
我在Cygwin中运行。
以上是简化示例。如果向driver_tools.py添加诊断,我在示例中运行顶级Makefile时会看到下面的args。如果我运行这个完整的命令,它仍然会无声地失败。
ARGS[0]: /cygdrive/c/cygwin/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/host_x86_32/bin/clang.exe
ARGS[1:] -ccc-cxx \
-help \
-emit-llvm \
-c -O2 \
-fno-vectorize \
-fno-slp-vectorize \
-fno-common \
-pthread \
-nostdinc \
-target \
le32-unknown-nacl \
-g -MMD \
-DNDEBUG \
-Wall \
-Wno-sign-compare \
-I/home/ned/nacl_sdk/pepper_canary/include \
-I/home/ned/nacl_sdk/pepper_canary/include/pnacl \
-Wno-long-long \
-Werror \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/usr/local/include \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/host_x86_32/lib/clang/3.3/include \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/usr/include/c++/v1 \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/usr/include/c++/v1/arm-none-linux-gnueabi \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/usr/include/c++/v1/backward \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/usr/include \
-isystem \
/home/ned/nacl_sdk/pepper_canary/toolchain/win_pnacl/sdk/include \
-xc++ \
testing.cc \
-o pnacl/Release/testing.o
Return Code: 127
答案 0 :(得分:2)
PNaCl工具链已经包含了一小部分cygwin,不同版本的cygwin是不兼容的。
您可以在PNaCl SDK中找到并删除cygwin1.dll,但通常不支持Cygwin。您应该使用普通的Windows工具或Mac / Linux。我追溯到错误版本的cygstdc ++ - 6.dll。
对我有用的是: 使用cygwin make和python,但是在DOS cmd shell中构建。我在C:/ cygwin / bin之前将%NACL_SDK_ROOT%/ toolchain / win_pnacl / bin添加到PATH,因此pnacl dll(如cygstdc ++ - 6.dll)与clang一起使用。这些dll的cygwin版本导致clang失败。
我攻击了driver_tools.py,因为设置DRIVER_BIN的工具失败了。他们产生了一条路径,它是两条完整路径的串联。我没有尝试修复这些功能。我只是在我的环境中明确设置了DRIVER_BIN / DRIVER_PATH,并在driver_tools.py中引用了这些变量。
PATH=${PATH}:/cygdrive/c/cygwin/home/ned/nacl_sdk/pepper_31/toolchain/win_pnacl/bin:/cygdrive/c/cygwin/bin
NACL_SDK_ROOT=C:/cygwin/home/ned/nacl_sdk/pepper_31
DRIVER_BIN=C:/cygwin/home/ned/nacl_sdk/pepper_31/toolchain/win_pnacl/bin/
DRIVER_PATH=C:/cygwin/home/ned/nacl_sdk/pepper_31/toolchain/win_pnacl/bin/
NACL_ARCH=pnacl
TOOLCHAIN=pnacl