add_library(<name> <SHARED|STATIC|MODULE|OBJECT|UNKNOWN> IMPORTED [GLOBAL]) 这种用法直接导入已经生成的库,cmake不会给这类library添加编译规则。 这种用法的关键在于添加变量IMPORTED。 另外,GLOBAL可用于设置这个library为全局可见。 常规和imported的library的属性不同: 常规的library,其属性以INTERFACE_开头 impor...
生成lib文件 libhello.a add_library(hello hello.cxx) #在top level添加子目录 add_subdirectory(hello) # 在顶层添加link依赖 target_link_libraries(Test PUBLIC hello) # 添加targert依赖的头文件路径 target_include_directories(Test PUBLIC "{PROJECT_BINARY_DIR}" "{PROJECT_SOURCE_DIR}/hello") # test....
add_library: 为生成的库添加源文件,是库的名字,直接写名字即可,不要写lib,会自动加上前缀。STATIC表示静态库(lib),SHARED表示动态库(so)。 代码语言:javascript 代码运行次数:0 复制Cloud Studio 代码运行 add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 [source2 ...]) opti...
add_library命令在CMake中用于定义一个库目标。它有以下几种使用方式: 静态库 add_library(lib_name [STATIC] source1.cpp source2.cpp ...) 这将使用source1.cpp、source2.cpp等源文件创建一个名为lib_name的静态库。 共享库(动态库) add_library(lib_name [SHARED] source1.cpp source2.cpp ...) 这...
SHARED:生成动态库 EXCLUDE_FROM_ALL:add_library, add_executable, add_subdirectory等命令都有一个EXCLUDE_FROM_ALL参数. 作用就是如果某个target或subdirectory被设置为EXCLUDE_FROM_ALL属性, 那么这个target(或这个subdirectory中的所有target)就会被排除在all target列表之外,这样,当执行默认的make时,这个target(或这...
cmake是Linux(这里默认是Ubuntu系统)下常使用的编译C++的工具,而使用cmake就需要先在CmakeLists.txt文件中对编译规则进行。这里介绍常用的三种指令add_library、target_link_libraries和link_directories,该笔记主要参考了cmake官网给的教程,如有需要请访问以下网址: ...
静态库没有链接到cpp文件。同1中的例子,如果在生成库文件add_library时,add_library(lib main.cpp a.cpp),只将a包含进来,静态库是可以正常生成,但在链接该静态库时,add_executable(main main.cpp lib.a);同样会找不到函数y,出现undefined reference to ‘y’的情况; 静态库、动态库链接顺序。连接库参数的顺...
add_library(sub test.cpp) 场景1:父目录CMakeLists.txt的add_subdirectory只指定了source_dir。 # 父目录下的CMakeLists.txt cmake_minimum_required(VERSION 3.10.2)project(test)add_subdirectory(sub) 在父目录下调用cmake .构建之后,在sub目录下会出现libsub.a库,说明当不指定binary_dir,输出目标文件就会放...
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib)# 设置动态库的输出目录#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/lib)# 存放可执行软件的目录#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)#///set(PROJECT_SOURCES#\\\${UI} #添加自定义ui$...