나는 CMake에 새롭다. 사실, 나는 그것을 통해 Kdevelop4 widh C + +를 시도하고있다.CMake 하위 디렉토리 종속성
모든 소스를 컴파일하여 단일 실행 파일로 링크해야한다고해도 필자가 만든 모든 네임 스페이스에 대한 하위 디렉토리를 만드는 습관이 있습니다. 글쎄, kdevelop 아래에 디렉토리를 만들면 CMakeLists.txt가 add_subdirectory 명령으로 업데이트되고 그 아래에 새로운 CMakeLists.txt가 생성되지만, 그 아래의 소스는 컴파일 목록에 추가되지 않습니다.
project(gear2d) add_executable(gear2d object.cc main.cc) add_subdirectory(component)
구성 요소에서/내가 컴파일하고 gear2d 실행 파일을 생성하는 링크 될하고자하는 소스가 다음과 같이
나는 루트 CMakeLists.txt 있습니다. 어떻게해야합니까?
CMake FAQ는 this 항목을 가지고 있지만 그 대답은 차라리 평범한 Makefile에 머물고 싶습니다.
이 방법이 있습니까?
! 매우 감사합니다. 나는 라이브러리가 무엇을 의미하는지에 대한 다른 개념을 가지고있었습니다. 실제로 add_executable을 사용하여 서브 디렉토리 CMakeListrs.txt에 소스를 추가하는 것만 큼 루트 디렉토리에서했던 것처럼합니다. 다시 한번 감사드립니다. – Leonardo
기본적으로 새 (라이브러리) 대상이 추가됩니다. 이 타겟이 자체적으로 링크되지는 않지만 나중에 컴파일러 플래그 또는 기타 항목을 설정할 때 문제가 발생할 수 있습니다. 더 나은 대답은 다음과 같습니다. http://stackoverflow.com/questions/8934295/add-source-in -a-sub-directory-to-a-cmake-project – kralyk
@kralyk : 새 라이브러리 타겟에 동의합니다. 편의를 위해 필자는 "단일 실행 파일에 링크 된"을 보았을 뿐이며 디렉토리와 라이브러리에 소스 파일을 배포하는 또 다른 방법을 간단히 알고 싶었습니다. –