내 프로젝트 루트에 CMakeLists.txt가 있고 my/src 폴더에 CMakeLists.txt가 있습니다./src 폴더에있는 파일에는 .cpp 파일 (set (SOURCEFILES main.cpp foo.cpp)
)이 포함 된 변수 만 포함되어 있으며 CMakeLists.txt 루트에는 add_subdirectory(src)
이 있고 나중에는 add_executable(MyApp ${SOURCEFILES})
입니다.cmake 변수 범위, add_subdirectory
하지만 cmake 나에게 오류 인수 잘못된 번호라고
add_executable을 제공
이 어떻게 변수를 볼 수 cmake를받을 수 있나요
제공되지 소스 ? 내가 cmake는 전역 변수를 알고 읽을 수 있지만 그게 set 명령의 문서에서 언급 한 바와 같이
감사합니다,이 그것을 해결했다. 그러나 또 다른 참고 사항 : cmake가 이제 부모 범위에 있기 때문에 서브 디렉토리에서'foo.cpp '대신에'$ {CMAKE_CURRENT_SOURCE_DIR}/foo.cpp'를 사용해야합니다. – blubberbernd
또는 add_subdirectory 호출 전에 상위 CMakeLists.txt 파일에서 변수를 설정하고 해당 정의가 하위 CMakeLists 파일로 상속되도록 할 수 있습니다. 다시 말하지만, 여러 CMakeLists 파일에서 파일 이름을 참조해야하는 경우 파일의 이름을 한정해야합니다. – DLRdave
sub-dir/function에서 값을 사용하려면 현재 범위에서도 변수를 만들어야합니다.'set (VAR value PARENT_SCOPE); 세트 (VAR $ {VAR}); ' –