cmake使用笔记

来源:互联网 发布:淘宝虚拟试衣 编辑:程序博客网 时间:2024/06/05 15:24

cmake方法
工程结构
project/
├── bin
├── CMakeLists.txt
├── include
│ └── test.h
├── lib
│ └── CMakeList.txt
├── libtest.so
└── src
├── CMakeLists.txt
├── main.cpp
└── test.cpp
project目录中

add_subdirectory(目录)向这个"目录"里搜索CMakeLists.txt文件
project/CMakeLists.txt内容如下:
add_subdirectory(src) #将要在src目录下搜索CMakeLists.txt
add_subdirectory(lib)#将要在lib目录下搜索CMakeLists.txt
/${PROJECT_SOURCE_DIR}/相当于project/ 也就是工程根目录的意思
等于project/include

lib目录中

set(LIB_SOURCE test.cpp)
include_directories(${PROJECT_SOURCE_DIR}/include)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
add_library(libhello SHARED ${LIB_SOURCE})#生成动态库,静态库只需将SHARED换成STATIC
include_directorys(${PROJECT_SOURCE_DIR}/include)
此函数使编译器去搜索project/include目录找头文件,但是可能找不到库文件(见src中的CMakeLists.txt)

src目录中

project/src/{CMakeLists.txt,maim.cpp,test.cp}
CMakeLists.txt内容如下:
\#将可执行文件生成到project/bin
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}//bin)
add_executable(test.exe SOURCE_FILES)#生成可执行文件test.exe
target_link_libraries(${PROJECT_NAME} libhello)

0 0