cmake
빌드 타겟
수색…
통사론
- add_executable (target_name [EXCLUDE_FROM_ALL] 소스 1 [소스 2 ...])
- add_library (lib_name [정적 | 공유 | 모듈] [EXCLUDE_FROM_ALL] 소스 1 [소스 2 ...])
실행 파일
실행 파일을 생성하는 빌드 타겟을 만들려면 add_executable
명령을 사용해야합니다 :
add_executable(my_exe
main.cpp
utilities.cpp)
이렇게하면 빌드 타겟이 생성됩니다. 예를 들어 GNU make에 make my_exe
를 만들고 구성된 컴파일러를 적절하게 호출하면 main.cpp
와 utilities.cpp
의 두 소스 파일에서 실행 파일 my_exe
가 생성됩니다.
기본적으로 모든 실행 목표는 내장에 추가되는 all
대상 ( all
GNU는 만들를 위해 BUILD_ALL
MSVC를 들어).
실행 파일을 기본 all
대상으로 빌드하지 않도록 제외하려면 대상 이름 바로 뒤에 선택적 매개 변수 EXCLUDE_FROM_ALL
추가 할 수 있습니다.
add_executable(my_optional_exe EXCLUDE_FROM_ALL main.cpp)
도서관
라이브러리를 작성하는 빌드 대상을 작성하려면 add_library
명령을 사용하십시오.
add_library(my_lib lib.cpp)
CMake 변수 BUILD_SHARED_LIBS
는 예를 들어 cmake .. -DBUILD_SHARED_LIBS=ON
사용하여 정적 ( OFF
) 또는 공유 ( ON
) 라이브러리를 빌드 할 때마다 제어합니다. 그러나 대상 이름 다음에 STATIC
또는 SHARED
를 추가하여 공유 라이브러리 또는 정적 라이브러리를 빌드하도록 명시 적으로 설정할 수 있습니다.
add_library(my_shared_lib SHARED lib.cpp) # Builds an shared library
add_library(my_static_lib STATIC lib.cpp) # Builds an static library
실제 출력 파일은 시스템마다 다릅니다. 예를 들어 Unix 시스템의 공유 라이브러리는 보통 libmy_shared_library.so
라고하지만 Windows에서는 my_shared_library.dll
과 my_shared_library.lib
됩니다.
add_executable
과 마찬가지로 소스 파일 목록 앞에 EXCLUDE_FROM_ALL
을 추가하여 all
대상에서 제외시킵니다.
add_library(my_lib EXCLUDE_FROM_ALL lib.cpp)
런타임에로드되도록 설계된 라이브러리 (예 : 플러그인 또는 dlopen
과 같은 것을 사용하는 응용 프로그램)는 SHARED
/ STATIC
대신 MODULE
사용해야합니다.
add_library(my_module_lib MODULE lib.cpp)
예를 들어, Windows에서는 기호가 .dll
에서 직접 내보내 지므로 가져 오기 ( .lib
) 파일이 없습니다.