>백엔드 개발 >C++ >CMake에서 포함 디렉터리 및 헤더 종속성을 올바르게 관리하는 방법은 무엇입니까?

CMake에서 포함 디렉터리 및 헤더 종속성을 올바르게 관리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-19 15:43:10562검색

How to Properly Manage Include Directories and Header Dependencies in CMake?

CMake를 사용하여 포함 디렉터리를 올바르게 추가

CMake에서 포함 디렉터리 및 헤더 종속성을 관리하는 것은 효과적인 프로젝트 컴파일에 매우 중요합니다. 이 문서에서는 생성된 Makefile에 포함되고 추적될 헤더가 특정 디렉터리에 포함되어 있음을 CMake에 올바르게 알리는 방법에 대한 질문을 다룹니다.

포함 디렉터리 추가

헤더가 포함된 디렉터리를 포함하려면 다음 명령을 사용하세요.

target_include_directories(test PRIVATE ${YOUR_DIRECTORY})

이전 CMake 버전을 사용하는 경우 target_include_directories를 지원하지 않으면 대신 기존 include_directories를 사용하십시오.

include_directories(${YOUR_DIRECTORY})

헤더 종속성 추적

헤더 종속성을 추적하려면 헤더 파일을 현재 타겟의 소스 파일 목록:

set(SOURCES file.cpp file2.cpp ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h)
add_executable(test ${SOURCES})

이렇게 하면 헤더 파일이 Makefile 및 기타 생성된 프로젝트 파일에 종속 항목으로 표시되어 컴파일 중에 해당 파일이 포함되도록 합니다.

여러 대상에 헤더 사용

여러 대상에서 동일한 헤더 파일을 사용하려면 대상인 경우 다음 단계를 따르세요.

set(HEADER_FILES ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h)

add_library(mylib libsrc.cpp ${HEADER_FILES})
target_include_directories(mylib PRIVATE ${YOUR_DIRECTORY})

add_executable(myexec execfile.cpp ${HEADER_FILES})
target_include_directories(myexec PRIVATE ${YOUR_DIRECTORY})

이 접근 방식을 사용하면 모든 대상이 필요한 헤더에 액세스할 수 있고 헤더 종속성이 추적됩니다. 적절하게. 다음 단계를 따르면 CMake 프로젝트의 포함 디렉터리와 헤더 종속성을 효과적으로 관리할 수 있습니다.

위 내용은 CMake에서 포함 디렉터리 및 헤더 종속성을 올바르게 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.