set(add_src ${CMAKE_CURRENT_SOURCE_DIR}/fadd.cpp ${CMAKE_CURRENT_SOURCE_DIR}/iadd.cpp) add_library(add STATIC ${add_src}) target_include_directories(add PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) src目录下的CMakeLists.txt相对于chp2_3没有改变。我们编译一下,然后使用nm ./build/src/...
mkdir build cd build cmake .. make 这时,就可以在lib 目录得到一个libhello.so,这就是共享库。 如果要指定libhello.so 生成的位置,可以通过在主工程文件CMakeLists.txt 中修改 ADD_SUBDIRECTORY(lib)指令来指定一个编译输出位置或者在lib/CMakeLists.txt 中添加 SET(LIBRARY_OUTPUT_PATH <路径>)来指定一个...
第三行add_library 创建一个static_library的静态库,源文件为Hello.c 第六行当需要使用static_library静态库创建可执行文件时,需要使用target_link_libraries添加库文件。 编译 $mkdirbuild $ cd build/ $ cmake .. $ make 测试 build目录下会出现libstatic_library.a文件 $ ./hello_cmake static hello: cmake...
add_library(add STATIC ${lib_src}) 1. 2. add_library 参数说明 add :库文件名称,Linux 上生成库文件会自动加上前后缀,如当前的静态库文件名称为 libadd.a; STATIC :静态库,动态库为 SHARED; ${lib_src} :构造库文件所需的源码文件。 最外层 CMakeLists.txt ,生成的库文件放在 build/lib 目录中 c...
project(buildLib LANGUAGES CXX) 1. (3)add_library 创建目标——静态库。库的名称(message)和源码文件名相同。 add_library(message STATIC Message.cpp Message.h) 1. CMake接受其他值作为 add_library 的第二个参数的有效值: STATIC:用于创建静态库,即编译文件的打包存档,以便在链接其他目标时使用,例如:可...
add_library(<name><SHARED|STATIC|MODULE|UNKNOWN>IMPORTED[GLOBAL]) 一个Imported Lib目标代表一个工程外部的库文件,当前这个工程内灭有命令来编译这个库,并且这个库的IMPORT属性是true。 没有设置GLOBAL的时候,这个目标名称的作用域只在创建它的目录以及子目录;设置了之后,全局可见。
CMakeLists文件 # 指定 CMake 最低版本cmake_minimum_required(VERSION3.5FATAL_ERROR)project(message)aux_source_directory(src src_dir)add_library(messageSTATIC${src_dir}) 编译 cmake -G Ninja .. cmake --build .
LIBRARY_OUTPUT_PATH:库文件路径 CMAKE_BUILD_TYPE::build 类型(Debug, Release, ...),CMAKE_BUILD_TYPE=Debug BUILD_SHARED_LIBS:Switch between shared and static libraries 内置变量的使用: >> 在CMakeLists.txt中指定,使用set >> cmake命令中使用,如cmake -DBUILD_SHARED_LIBS=OFF ...
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) 三,编译共享库: 仍然采用out-of-source编译的方式,按照习惯,我们建立一个build目录,在build 目录中 cmake .. make 这时,你就可以在lib目录得到一个libhello.so,这就是我们期望的共享库。 如果你要指定libhello.so生成的位置,可以通过在主工程文件CMakeLists.txt中...
可以在add_library()命令后面添加一些可选参数,用于配置库的属性。例如,你可以通过添加STATIC关键字来指定创建一个静态库: 在CMakeLists.txt文件中,你还需要使用target_include_directories()命令来指定头文件的路径。这样,其他的项目就可以通过包含这些头文件来使用你的静态库。 在CMakeLists.txt文件中,你还...