수색…


통사론

  • 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.cpputilities.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.dllmy_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 ) 파일이 없습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow