cmake
# 将第三方库的搜索路径放到工程路径下
include_directories()
CMAKE_C_FLAGS 设置C编译选项
CMAKE_CXX_FLAGS 设置C++编译选项
set(var path)
# 生成可执行文件
add_executable(exename srcname)
# 向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置
add_subdirectory(src_dir binary_dir)
# 生成库
add_library(libname libtype exclude_from_all src)
EXECUTABLE_OUTPUT_PATH 生成可执行文件路径
LIBRARY_OUTPUT_PATH 生成库文件路径
# 添加外部库的搜素路径
link_directories()
# 为目标文件链接外部库文件
target_link_libraries(target library1)
include_directories()、link_directories()、link_libraries、target_link_libraries区别
include_directories(添加头文件目录)
ps:
include_directories('/base/st/include')
link_directories(添加需要链接的库文件目录)
ps:
link_directories('/base/st/lib')
link_libraries(添加需要链接的库文件路径,全路径)
ps:
link_libraries('/base/st/lib/xxx.so')
target_link_libraries(设置需要链接的库文件的名称)
ps:
target_link_libraries(bP_so
xxx.so
xxxx.so
xxxxx.so
)
示例1:
cmake_minimum_required(VERSION 3.6)
set(TOP_DIR ${CMAKE_CURRENT_LIST_DIR})
include_directories(${TOP_DIR}/include)
LINK_LIBRARIES(${TOP_DIR}/lib/xxx.so)
file(GLOB_RECURSE ST_SRCS ${CMAKE_SOURCE_DIR}/src/*.cc)
add_executable(bp_name ${ST_SRCS})
示例2:
cmake_minimum_required(VERSION 3.6)
set(TOP_DIR ${CMAKE_CURRENT_LIST_DIR})
include_directories(${TOP_DIR}/include)
file(GLOB_RECURSE ST_SRCS ${CMAKE_SOURCE_DIR}/src/*.cc)
add_executable(bp_name ${ST_SRCS})
targe_link_libraries(bp_so
xxx.so
)