【问题标题】:Can't build NaCl examples in Cygwin无法在 Cygwin 中构建 NaCl 示例
【发布时间】:2014-02-09 07:58:08
【问题描述】:

我仍在努力构建示例。 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

【问题讨论】:

    标签: cygwin google-nativeclient


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2011-05-03
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多