normal library add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2 ...]) 添加名为name的库,库的源文件可指定,也可用target_sources()后续指定。 库的类型是STATIC(静态库)/SHARED(动态库)/MODULE(模块库)之一。 name属性必须全局唯一 生成的library名会根据STATIC或SH...
构建库的源文件可以直接指定,也可以后续使用target_sources()指定 STATIC(静态库) SHARED(动态库) MODULE(模块库)用来指定库的类型。 -使用STATIC构建生成静态库(name.a),使用SHARED构建生成动态库(name.so)。 3.1.2 命令参数 name:构建成的库名 STATIC|SHARED|MOUDLE:库的类型 EXCLUDE_FROM_ALL:加了EXCLUDE_FRO...
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [source1] [source2 ...]) STATIC:生成静态库 SHARED:生成动态库 EXCLUDE_FROM_ALL:add_library, add_executable, add_subdirectory等命令都有一个EXCLUDE_FROM_ALL参数. 作用就是如果某个target或subdirectory被设置为EXCLUDE_FROM_ALL属性,...
ADD_LIBRARY(hello SHARED${LIBHELLO_SRC}) ADD_LIBRARY(hello_static STATIC${LIBHELLO_SRC}) 3:注意,一般我们使用的静态库/动态库只是后缀名不同而已,上面构建的libhello.so与libhello_static.a,显然名字不同哦。这时你会有一个想法,那我把hello_static改成hello,结果是不可行的,静态库无法构建。重名会忽略...
cmakelists中的add_library指令是用来创建静态或动态库的命令。它的常用语法是:add_library(name[STATIC|SHARED|MODULE]sources),其中name是库的名称,[STATIC | SHARED | MODULE]表示要创建的库的类型,sources是库的源文件。 在cmakelists中使用add_library指令可以很方便地创建库文件,并且可以在其他工程中使用这些库...
STATIC 替换为SHARED 就是指定编译为动态库,例如:add_library(xlog SHARED xlog.cpp) 。 如果是Linux动态库代码不需要调整,Windows动态库需要在代码中添加 __declspec(dllexport)不然导不出lib文件。 下面在CMakeLists.txt所在目录运行 cmake -S . -B build ...
这里,mylib 是库的名称,STATIC 指定了要创建的库类型为静态库,mylib.cpp 是源文件。 添加多个源文件到add_library 如果要将多个源文件添加到同一个库中,只需在 add_library 命令中依次列出这些源文件即可。例如: cmake add_library(mylib STATIC mylib1.cpp mylib2.cpp mylib3.cpp) 这里,mylib 包含了...
add_library(<name><SHARED|STATIC|MODULE|INTERFACE>[source1][source2...]) 其中,<name>是你要创建的库的名称,<SHARED|STATIC|MODULE|INTERFACE>用于指定库的类型。你可以选择的类型包括SHARED(共享库,Shared Libraries)、STATIC(静态库,Static Libraries)、MODULE(模块库,Module Libraries)或INTERFACE(接口库,Inter...
add_library(mylibrary STATIC source1.cpp source2.cpp) 在这个示例中,我们将源文件source1.cpp和source2.cpp编译为一个叫做mylibrary的静态库。 如果您想编译一个动态库,将STATIC参数改为SHARED即可,如下所示: add_library(mylibrary SHARED source1.cpp source2.cpp) 另一种常见的用法是将一个库编译成两种类...
add_library(<name> [STATIC SHARED MODULE] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN) - `<name>`是库的名称,一般使用全局唯一的标识符表示。 - [STATIC SHARED MODULE]用于指定库的类型。STATIC表示静态库,SHARED表示动态库,MODULE表示插件库。 -[EXCLUDE_FROM_ALL]是一个可选参数,如果存在,则将...