Programing

CMake target_link_libraries 인터페이스 종속성

lottogame 2021. 1. 6. 07:43
반응형

CMake target_link_libraries 인터페이스 종속성


저는 CMake를 처음 사용하고 .NET과 관련된 PUBLIC, PRIVATE 및 INTERFACE 키워드와 약간 혼동됩니다 target_link_libraries(). 문서에는 링크 종속성과 링크 인터페이스를 하나의 명령으로 지정하는 데 사용할 수 있다고 나와 있습니다.

링크 종속성 및 링크 인터페이스는 실제로 무엇을 의미합니까?


공유 라이브러리와 소스 cpp 파일을 #include 다른 라이브러리 (예 : QtNetwork)의 헤더를 포함하지만 헤더 파일에 QtNetwork 헤더가 포함되지 않은 경우 QtNetwork는 PRIVATE종속성입니다.

소스 파일과 헤더에 다른 라이브러리의 헤더가 포함되어 있으면 PUBLIC종속성입니다.

소스 파일이 아닌 헤더 파일에 다른 라이브러리의 헤더가 포함되어 있으면 INTERFACE종속성입니다.

다른 빌드 속성 PUBLICINTERFACE종속성은 사용 라이브러리로 전파됩니다. http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements

참조 URL : https://stackoverflow.com/questions/26037954/cmake-target-link-libraries-interface-dependencies

반응형