일부 소스 파일에 컴파일 정의를 추가하려고했기 때문에 다음과 같이 구성합니다.
set_property(
SOURCE main.cpp
APPEND
PROPERTY
COMPILE_DEFINITIONS "VERSION=3"
)
내가 사용하는 make VERBOSE=1
구성을 확인하는 것이 아니라 존재하지 않는 -DVERSION=3
를 컴파일하는 동안 또는 이와 유사한 것 main.cpp.o
. 그런 다음 다시 시도했습니다.
set_property(
DIRECTORY
APPEND
PROPERTY
COMPILE_DEFINITIONS "VERSION=3"
)
그런 다음 -DVERSION=3
. 왜 작동 set_property()
하지 SOURCE
않습니까? 나는 GNU Makefile 생성기를 사용하여 CMake 2.8.12 및 CMake 3.10에서 이것을 시도했습니다.
set_property(SOURCE ...)
서명을 사용할 때 상대 경로가있는 소스 파일은 현재 CMakeLists.txt 파일에 상대적인 것으로 해석됩니다 . 따라서 상대 경로를 지정할 때 파일은 현재 CMakeLists.txt 파일과 동일한 디렉토리에 main.cpp
있어야합니다 . 가능한 한 절대 경로를 사용하는 것이 항상 가장 안전합니다 (귀하와 같은 문제를 방지하기 위해).
set_property(
SOURCE ${CMAKE_CURRENT_LIST_DIR}/main.cpp
APPEND
PROPERTY
COMPILE_DEFINITIONS "VERSION=3"
)
set_property(SOURCE ...)
명령 의 추가 요구 사항은 다음과 같습니다 ( 문서에서 ).
SOURCE
범위는 0 개 이상의 소스 파일 이름을 지정할 수 있습니다. 소스 파일 등록 정보는 동일한 디렉토리 (
CMakeLists.txt
)에 추가 된 대상에만 표시됩니다 .
따라서 소스 파일을 사용하는 CMake 대상은 소스 파일을 호출하는 동일한 CMakeLists.txt 파일에 정의 되어야set_property()
합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다