필자는 디렉토리를 PHP의 Java 또는 디렉토리에서 패키지를 사용하는 방법과 같은 조직 구성 요소로 사용하는 C++ 프로젝트를 보유하고 있습니다. 디렉토리는 자급 자족 할 수있는 요소가 아니라 프로젝트 전체를 구성하고 소스로 인해 압도 당하지 않도록하는 방법입니다. CMakeLists.txt 파일을 어떻게 처리 할 수 있습니까? 디렉토리 라이브러리를 만드는 것은 여기에 맞지 않는 것처럼 보입니다. 왜냐하면 그것들은 모두 상호 의존적이며 그런 방식으로 사용되도록 의도되지 않았기 때문입니다.상호 의존적 인 여러 하위 디렉토리로 C++ 프로젝트를 빌드하려면 어떻게해야합니까?
관련 문제로, CMake에서 여러 하위 디렉토리를 본 대부분의 예는 그 중 많은 부분을 제외하고는 include_directories
설정 문제를 무시하거나 글로 나타내 었으며 이는 문제가 생겼다. 어떤 파일이 어떤 디렉토리에 종속되어 있는지를 결정하기 위해 내 소스 파일을 빗질하는 것 말고는 어쨌든 /src/
아래의 모든 디렉토리를 잠재적 인 디렉토리로 설정하고 CMake가 실제로 의존하는 파일을 찾도록합니다.
--src
--top1
--mid1
--bot1
--src1.cpp
--hdr1.h
--bot2
--src2.cpp
--hdr2.h
--mid2
--bot3
--src3.cpp
--src4.cpp
--hdr3.h
--top2
--mid3
--src5.cpp
--hdr4.h
등등 등등 :
다음은 구성 예입니다. 이러한 종류의 구조를 처리하기 위해 내 CMakeLists.txt
파일을 어떻게 구조화 할 수 있습니까?
절대적으로 CMake를 사용해야합니까? –
1.) 선호하는 발전기로 일하고 있습니까? 2.) 정말로 CMake가 무엇에 의존하는지 알아 내야한다고 생각합니까? 서로 독립적이어야하는 모듈 (예 : mid1, mid2, top2)을 정의 할 수 있어야한다고 생각합니다. 3.) "hdr2.h"또는와 같은 것을 # 포함합니까? –
Philipp
@benoit 그렇지 않겠지 만, 그게 내가 현재 사용하고있는 것입니다. 필자는 Automake를 사용하지 않고, 빌드가 복잡하지 않을 때 빌드 시스템을 배우는 데 많은 노력을 기울이는 것처럼 보입니다. –