2014-02-08 70 views
0

我仍在努力構建示例。鏗鏘聲進程總是失敗並返回127.無法在Cygwin中創建NaCl示例

/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[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 

回答

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