> 백엔드 개발 > C++ > CMake 빌드 출력을 별도의 'bin' 디렉터리로 리디렉션하려면 어떻게 해야 합니까?

CMake 빌드 출력을 별도의 'bin' 디렉터리로 리디렉션하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-15 14:35:15
원래의
172명이 탐색했습니다.

How Can I Redirect CMake Build Outputs to a Separate 'bin' Directory?

CMake 빌드 출력을 'bin' 디렉터리로 리디렉션

CMake를 사용하여 플러그인으로 프로젝트를 빌드할 때 컴파일된 바이너리와 라이브러리는 일반적으로 흩어져 있습니다. 소스 디렉토리 구조 내에서. 이러한 파일을 정리하려면 CMake의 출력을 './bin'과 같은 별도의 디렉터리로 지정해야 합니다.

해결책은 적절한 CMake 변수를 설정하여 원하는 출력 경로를 지정하는 데 있습니다. Oleg의 조언에 따라 수정할 올바른 변수는 CMAKE_RUNTIME_OUTPUT_DIRECTORY입니다.

루트 CMakeLists.txt 파일에서 다음과 같이 출력 디렉터리를 지정할 수 있습니다.

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
로그인 후 복사

이렇게 하면 출력 디렉터리가 설정됩니다. 아카이브, 라이브러리 및 런타임 바이너리의 경우 'lib' 하위 디렉터리 및 바이너리 내의 'bin' 하위 디렉터리 디렉터리.

또는 set_target_properties 명령을 사용하여 대상별로 출력 디렉터리를 지정할 수 있습니다.

set_target_properties(targets...
    PROPERTIES
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
로그인 후 복사

이 접근 방식을 사용하면 대상마다 다른 출력 디렉터리를 지정할 수 있습니다. 빌드 프로세스를 더욱 세밀하게 제어할 수 있습니다.

두 경우 모두 '_[CONFIG]'를 변수에 추가하거나 특정 구성에 대한 출력 디렉터리를 설정하는 속성 이름입니다. 표준 구성 값은 DEBUG, RELEASE, MINSIZEREL 및 RELWITHDEBINFO입니다.

위 내용은 CMake 빌드 출력을 별도의 'bin' 디렉터리로 리디렉션하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿