cmakelist依赖

cmakelist链接依赖. 依赖分为三种:

类型 后缀 存放目录 cmakelist
头文件 .h .hpp include target_include_directories
静态库 .lib(windows) .a(linux) lib target_link_libraries
动态链接库 .dll(windows) .so(linux) bin 复制到编译输出目录

典型的cmakelist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cmake_minimum_required(VERSION 4.1)
project(text01)

add_compile_options("/utf8")

set(CMAKE_CXX_STANDARD 17)


set(alson_lib_dir "D:/alson/Alson/ALSON Viewer/0.8.0.0/API/debug/lib")
add_executable(text01 main.cpp)

# link .h
target_include_directories(text01 PRIVATE ${alson_lib_dir}/../../include)

# link .lib
target_link_libraries(text01 ${alson_lib_dir}/alson_classic_base_debug.lib)
target_link_libraries(text01 ${alson_lib_dir}/alson_classic_client_debug.lib)
target_link_libraries(text01 ${alson_lib_dir}/alson_communication_base_debug.lib)
target_link_libraries(text01 ${alson_lib_dir}/alson_communication_client_debug.lib)

# copy dll
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/build)
file(COPY "${alson_lib_dir}/../bin/alson_classic_base_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/alson_classic_c_client_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/alson_classic_client_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/alson_common_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/alson_communication_base_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/alson_communication_c_client_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/alson_communication_client_debug.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/concrt140.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/libzmq-v140-mt-gd-4_3_4.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/msvcp140.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})
file(COPY "${alson_lib_dir}/../bin/vcruntime140.dll" DESTINATION ${LIBRARY_OUTPUT_PATH})