cmake에서 매크로의 정의를 추가하려면 어떻게 해야 합니까?
저는 C++ 애플리케이션에서 Mongodb 클라이언트와 Boost를 사용하고 있습니다.Mongodb 클라이언트는 여전히 Boost old file system을 사용하고 있고 내 C++ 애플리케이션은 boost 1.47.0에서 파일 시스템 버전 3을 사용하고 있기 때문에 충돌합니다.
이 컴파일 문제를 해결하는 방법을 찾았습니다. 즉, boost의 헤더 파일에 대한 모든 include 문 앞에 매크로 정의를 추가합니다.
#define BOOST_FILESYSTEM_VERSION 2
하지만 위 매크로의 정의를 내 CMake 프로젝트 파일에 어떻게 넣는지 알고 싶습니다.
add_definitions를 보면 컴파일러 명령줄에 정의가 추가됩니다.-D
gcc와 함께, 또는/D
MSVC와 함께.다음과 같은 방법을 사용해 보십시오.
add_definitions( -DBOOST_FILESYSTEM_VERSION=2 )
당신의 경우라면, 저는 분명히 그와 함께 갈 것입니다.add_definition
method. 대신 configure_file을 살펴볼 수도 있습니다.그런 다음 cmake-values로 채워진 헤더 파일 템플릿을 만들고 이 템플릿을 원본 파일에 포함시킬 수 있습니다.이 기능은 CMake에 의해 결정되는 구성 가능한 매개 변수가 많은 경우 유용합니다.
CMake 3 이후에는 특정 대상에 대한 정의만 설정할 target_compile_definitions가 있습니다.
예:
target_compile_definitions(your_target_name PUBLIC BOOST_FILESYSTEM_VERSION=2)
언급URL : https://stackoverflow.com/questions/6770834/how-to-add-macros-definition-in-cmake
'programing' 카테고리의 다른 글
bash의 함수 내에서 글로벌 변수를 수정하는 방법은 무엇입니까? (0) | 2023.05.19 |
---|---|
Bash 스크립트에서 예상을 사용하여 SSH 명령에 암호 제공 (0) | 2023.05.19 |
Azure Active Directory B2C에서 그룹별 인증 (0) | 2023.05.19 |
내 프로젝트에서 내 각진 버전을 어떻게 찾을 수 있습니까? (0) | 2023.05.19 |
SqlDataReader 개체에서 열 이름 확인 (0) | 2023.05.19 |