2014-02-08 7 views
0

예제를 빌드하는 데 여전히 어려움을 겪고 있습니다. clang 프로세스는 항상 실패하고 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가 표시됩니다. 이 전체 명령을 실행해도 조용히 실패합니다.

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의 다른 버전은 호환되지 않습니다.

Cygwin1.dll은 PNaCl SDK에서 찾아서 제거 할 수 있지만 일반적으로 Cygwin은 지원되지 않습니다. 일반 Windows 도구 또는 Mac/Linux를 사용해야합니다. cygstdC++ - 6.dll의 잘못된 버전으로 추적했습니다.

나를 위해 일한 것은 : cygwin make와 python을 사용하지만 DOS cmd 쉘에서 빌드하는 것입니다. C :/cygwin/bin 앞에 PATH에 % NACL_SDK_ROOT %/toolchain/win_pnacl/bin을 추가하여 pnacl dll (cygstdC++ - 6.dll과 같은)을 clang과 함께 사용했습니다. cygwin 버전의 dll 때문에 clang이 실패했습니다.

DRIVER_BIN을 (를) 설정하는 도구가 실패했기 때문에 driver_tools.py를 해킹했습니다. 그들은 두 개의 전체 경로를 연결 한 경로를 만들어 냈습니다. 나는이 기능을 고치려고하지 않았다. 내 환경에서 명시 적으로 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 
관련 문제