설치 내가 git를 호출하면 cmake execute_process()가 "No such file or directory"와 함께 항상 실패합니다.



cmake 설치 (1)

인수를 다음과 같이 두 번째 옵션으로 전달해야합니다.

cmake_minimum_required (VERSION 2.8)

set (git_cmd "git")
set (git_arg "--version")
message(STATUS "git cmd: ${git_cmd}")
execute_process(COMMAND ${git_cmd} ${git_arg}
  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  RESULT_VARIABLE git_result
  OUTPUT_VARIABLE git_ver)

message(STATUS "git ver[${git_result}]: ${git_ver}")

리눅스 머신에서 cmake 프로젝트에서, 나는 내 애플 리케이션에 소스 컨트롤에서 정보를 포함 할 수 있도록 execute_process를 사용하여 자식을 호출하려고한다.

나는 git 버전을 시도하고 프린트하기 위해 약간의 테스트를 만들었다.

cmake_minimum_required (VERSION 2.8)

set (git_cmd "/usr/bin/git --version")
#set (git_cmd "ls") # returns success if you uncomment this line 
message(STATUS "git cmd: ${git_cmd}")
execute_process(COMMAND ${git_cmd}
  WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
  RESULT_VARIABLE git_result
  OUTPUT_VARIABLE git_ver)

message(STATUS "git ver[${git_result}]: ${git_ver}")

configure_file (
  "${PROJECT_SOURCE_DIR}/versionInfo.h.in"
  "${PROJECT_BINARY_DIR}/versionInfo.h"
  )

make를 실행하면 다음과 같은 결과가 출력됩니다 :

-- git cmd: /usr/bin/git --version
-- git ver[No such file or directory]: 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rsanderson/build/githash: 

그러나 명령을 ls 변경하면 결과가 유효하며 dir 목록 인쇄가 표시됩니다. 나는 또한 그 자식이 실제로 / usr / bin에 있는지 확인했다.

내가 여기에서 놓친 것에 대한 아이디어가 있습니까?