add_library中的第二个参数 STATIC 表示是静态库,如果不加STATIC的话比如 add_library(xlog xlog.cpp) 就是默认编译动态库,如果要编译静态库再通过cmake的预制变量来控制。 STATIC 替换为SHARED 就是指定编译为动态库,例如:add_library(xlog SHARED xlog.cpp) 。 如果是Linux动态库代码不需要调整,Windows动态库需...
cmake add_library(${MODULE_NAME} MODULE ${SOURCES}) 指定库的输出目录:最后,你可能需要指定库的输出目录。这个目录应该是一个绝对路径,你可以使用CMake的变量来生成这个路径。 cmake set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins) 以上就是在CMake...
add_library(<name> OBJECT [...]) 1. 这种形式类型固定为OBJECT,以这种方式,只编译source列表的文件,但不将生成的目标文件打包或者链接为库,而是在其他add_library()或者add_executable()生成目标的时候,可以使用形如$<TARGET_OBJECTS:objlib>的表达式将对象库作为源引入。 3.2.2 示例代码 使用方式: add_librar...
add_library(cmjnidrv SHARED ${JNI_SOURCE_FILES}) # fctest指定了EXCLUDE_FROM_ALL 属性,不会自动编译,只能手动编译 add_executable(fctest EXCLUDE_FROM_ALL FeatureCompareSpeedTest.cpp) 说明:加了EXCLUDE_FROM_ALL属性的target在默认编译时不会被编译,如果要编译,需要手动编译, 比如make fctest指定编译名为fctes...
STATIC 替换为SHARED 就是指定编译为动态库,例如:add_library(xlog SHARED xlog.cpp) 。 如果是Linux动态库代码不需要调整,Windows动态库需要在代码中添加 __declspec(dllexport)不然导不出lib文件。 下面在CMakeLists.txt所在目录运行 cmake -S . -B build ...
STATIC 替换为SHARED 就是指定编译为动态库,例如:add_library(xlog SHARED xlog.cpp) 。 如果是Linux动态库代码不需要调整,Windows动态库需要在代码中添加 __declspec(dllexport)不然导不出lib文件。 下面在CMakeLists.txt所在目录运行 cmake -S . -B build ...
add_library(${MODULE_NAME} MODULE ${SOURCES}) 指定库的输出目录:最后,你可能需要指定库的输出目录。这个目录应该是一个绝对路径,你可以使用CMake的变量来生成这个路径。 set_target_properties(${MODULE_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/plugins) ...
add_library(my_project"libmylib1.0.a""libmylib2.0.a") 指定依赖文件的路径 除了提供依赖文件的名称和版本号外,还可以使用add_library命令指定依赖文件的路径。例如,要添加一个名为"libmylib.a"的库文件,并将其添加到项目的public目录中,可以将其添加到CMakeLists.txt的依赖列表中,如下所示: ...
add_library(MathFunctions MySquare.cpp) 编写执行代码 库写好之后接下来就是把它引到咱们的可执行文件中。需要借助于CMake的add_subdirectory函数。其作用为为工程添加一个子目录去编译。add_subdirectory指定源文件和源CMakeLists.txt文件的目录。所以根目录的CMakeLists.txt文件内容为: ...
ADD_LIBRARY(hello SHARED${LIBHELLO_SRC}) ADD_LIBRARY(hello_static STATIC${LIBHELLO_SRC}) 3:注意,一般我们使用的静态库/动态库只是后缀名不同而已,上面构建的libhello.so与libhello_static.a,显然名字不同哦。这时你会有一个想法,那我把hello_static改成hello,结果是不可行的,静态库无法构建。重名会忽略...