2016-07-29 5 views
0

내가 cmake를 사용하여 내가 GitHub의에서 가져온 몇 가지 코드를 구축을 위해 노력하지만, 다음 오류가 계속있어 발견하지 :닌자 CMake

CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. 
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. 
Missing variable is: 
CMAKE_C_COMPILER_ENV_VAR 
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. 
Missing variable is: 
CMAKE_C_COMPILER 
CMake Error: Could not find cmake module file:/golang/project/src/github.com/devsisters/goquic/libquic/build/debug/CMakeFiles/2.8.11/CMakeCCompiler.cmake 
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. 
Missing variable is: 
CMAKE_CXX_COMPILER_ENV_VAR 
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. 
Missing variable is: 
CMAKE_CXX_COMPILER 
CMake Error: Could not find cmake module file:/golang/project/src/github.com/devsisters/goquic/libquic/build/debug/CMakeFiles/2.8.11/CMakeCXXCompiler.cmake 
-- Configuring incomplete, errors occurred! 

사람이 얼마나 올바르게 이러한 변수를 설정하는 방법을 말해 줄래? 감사.

github 코드와 함께 제공된 ./build_libs.sh 파일을 사용하여이를 빌드합니다.

+0

그래서, ** 어떤 시스템을 ** 당신은 CMake와 함께 사용하고 싶습니까? 닌자? 아니면 Makefile? – Tsyvarev

+0

파일을 만들 ninja를 다운로드했습니다. – user3871995

+0

사용할 빌드 시스템을 어떻게 설정할 수 있습니까? 나도 makefile을 가지고 있고 그들 중 하나를 사용할 수있다 – user3871995

답변

6

실행중인 스크립트는 cmake 닌자 생성기를 사용합니다. 그게 작동하려면 닌자가 필요합니다. 대부분의 리눅스 배포판에서는 패키지로 설치할 수 있습니다. 닌자 빌드

오픈 수세 :

우분투

당신이 당신의 배포를 찾을 수없는 경우 닌자

당신은 그것을 다운로드하고 경로 환경 변수에 위치에 추가해야합니다.

+1

답변 해 주셔서 감사합니다. 나는 다운로드하고 ninja를 만들었으며, $ PATH 변수에 추가하고 여전히이 오류를 보았습니다.내가 어떤 차이를 만들면 redhat를 사용하고있다. – user3871995

+2

정말로 PATH에 있다면 it.Run'echo $ PATH'을 실행하고 폴더 닌자가 거기에 있는지 확인해야한다. –

+0

아마 CMake 캐시를 삭제해야합니다. 빌드 디렉토리에서 CMakeCache.txt를 삭제하면됩니다. – usr1234567

2

ninja이 $ PATH에 실제로 존재하지만 여전히 작동하지 않는 경우 ls -l /PATH/TO/NINJA을 통해 실행 파일의 사용 권한을 확인해야합니다. 다른 사용자가 & 실행 권한 (예 : '-rwxr-xr-x')을 읽었는지 확인하십시오.

의견 대신 새로운 답변을 게시하여 죄송합니다. 새로운 답변이며 충분한 평판이 없습니다.

은 참조 : https://public.kitware.com/Bug/view.php?id=13910

+0

그것은 나를 위해 작동하지 않습니다. 결국, 우분투 대신 CentOS로 전환하면 모든 것이 잘 작동합니다 ... –

1

내 솔루션 : 심볼릭 링크 "닌자 빌드를" "닌자"를 참조하십시오.

# ln -s /usr/bin/ninja /usr/bin/ninja-build 

이 단지 내가 아래에 설명 할 것입니다 CMake의 아주 오래된 버전에 작동합니다.

나는 이미 새로운 "닌자"바이너리를/usr/bin에 떨어 뜨려서 0755 권한을 가지고 있는지 확인했다. 나는 발전기 명령에 strace를 돌릴 때까지 난처했다.

# strace cmake -GNinja .. | grep -i ninja 
access("ninja-build", R_OK)    = -1 ENOENT (No such file or directory) 
access("/usr/local/sbin/ninja-build", R_OK) = -1 ENOENT (No such file or directory) 
access("/usr/local/bin/ninja-build", R_OK) = -1 ENOENT (No such file or directory) 
access("/sbin/ninja-build", R_OK)  = -1 ENOENT (No such file or directory) 
access("/bin/ninja-build", R_OK)  = -1 ENOENT (No such file or directory) 
access("/usr/sbin/ninja-build", R_OK) = -1 ENOENT (No such file or directory) 
access("/usr/bin/ninja-build", R_OK) = -1 ENOENT (No such file or directory) 
access("/opt/texlive/2016/bin/i386-linux/ninja-build", R_OK) = -1 ENOENT (No such file or directory) 
access("/root/bin/ninja-build", R_OK) = -1 ENOENT (No such file or directory) 

"닌자"가 아니라 "닌자 빌드"를 찾고있었습니다.

저는 CMake와 Ninja를 직장에서나 가정에서, Windows와 Linux에서 광범위하게 사용합니다. 그럼 전에 왜이 벌레를 보지 못했을까요?

음 ...이 인스턴스에서는 CMake 버전 2.8.12의 아주 오래된 버전을 사용하고 있습니다. 그것은 너무 오래되어 거의 화석입니다. 아마도 나중에 수정 된 CMake 버그 일 수도 있고 Ninja 프로젝트가 어느 시점에서 바이너리 이름을 변경 한 것일 수도 있습니다.