ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC}) #对hello_static的重名为hello SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") # cmake 在构建一个新的target 时,会尝试清理掉其他使用这个名字的库,如果没有清理还是会只会构建一个动态库,不会构建出静态库 SET_TARGET_PROPERTIES(hello...
INSTALL(TARGETS hello hello_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) INSTALL(FILES hello.h DESTINATION include/hello) 注意,静态库要使用ARCHIVE 关键字 通过如下命令安装: cmake -DCMAKE_INSTALL_PREFIX=/usr .. make sudo make install 这样就可以将头文件和共享库安装到系统目录/usr/lib 和...
set(LIBRARY_OUTPUT_PATH lib) # 生成动态库 add_library(hello SHARED ${DIR_LIB_SRCS}) # 生成静态库 # 这样写会使得静态库没有构建,报错原因是动态库的名称也是hello即target不能重名 # add_library(hello STATIC ${DIR_LIB_SRCS}) # 修改名称后构建是可以成功的,会生成libhello_static.a和libhello.so...
如果你希望改变这些文件的输出路径,可以使用set命令来设置CMAKE_RUNTIME_OUTPUT_DIRECTORY、CMAKE_LIBRARY_OUTPUT_DIRECTORY和CMAKE_ARCHIVE_OUTPUT_DIRECTORY变量。 例如,如果你想将可执行文件输出到bin目录,将库文件输出到lib目录,将静态库文件输出到static_lib目录,可以在CMakeLists.txt文件中添加以下代码: set(CMAKE...
# TARGETS 指目标二进制文件,LIBRARY 指动态库,ARCHIVE 指静态库 install(TARGETS add add_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) 1. 2. 3. 4. 5. 6. 使用外部构建进行编译安装,将工程安装到 /tmp/add 目录中 $ cmake -DCMAKE_INSTALL_PREFIX=/tmp/add .. ...
2.1install()命令的调用过程 1、编写一个静态库 --- 已完成 2、编写一个可执行文件 --- 已完成 3、将静态库和可执行文件安装到不同目录(尽可能多的演示install命令) 4、通过提供cmake文件,让库的使用者能找到该库(可以参考find_library或find_package命令) --- 已完成 ...
#INSTALL (TARGETS hello hello_static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) #INSTALL (FILES hello.h DESTINATION include/hello) 3、configure and generate xxx/to/path cd build cmake .. 4、其他设置 若需要指定输出路径,尝试下面的示例指令: ...
这里add_library表示最终编译为一个库,static表示是静态库,如果想编译动态库,可以修改为shared. 至此,一个静态库的配置就完成了。当然,因为这个库没有包括其它外部的头文件,所以会比较简单。但这也远比一个Makefile要简单N倍。 编译linux静态库(含64位和32位) ...
add_library(${PROJECT_NAME}STATIC${PROJECT_SOURCES}${PROJECT_HEADER})#target_link_libraries(${...
add_library( )函数用来从源文件创造一个库,调用方法如下: add_library(hello_library STATIC src/Hello.cpp ) 这将用于创建一个名为libhello_library.a的静态库,其中包含add_library调用中的源。 如前一个示例中所述,我们将源文件直接传递给add_library调用,这是现代CMake的建议。