ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello STATIC ${LIBHELLO_SRC}) 但是如果使用这种方式,只会构建一个动态库,不会构建出静态库,虽然静态库的后缀是.a,此时我们可以修改静态库的名字,这样是可以同时构建动态库和静态库: ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello_st...
2.3 关于imported library的详细信息,是通过设置那些以IMPORTED_和INTERFACE_开头的属性来指定的。 其中最重要的属性是:IMPORTED_LOCATION,这个属性用于指定磁盘上主库文件的位置。 2.4示例: add_library(PocoLib SHARED IMPORTED GLOBAL) # It's important to specify the full path to the library you want to impo...
以此为例,CMAKE_LIBRARY_PATH 可以用在 FIND_LIBRARY 中。 同样,因为这些变量直接为FIND_指令所使用,所以所有使用FIND_指令的cmake 模块都会受益。 总结 通过ADD_LIBRARY 指令构建动态库和静态库。 通过SET_TARGET_PROPERTIES 同时构建同名的动态库和静态库。 通过SET_TARGET_PROPERTIES 控制动态库版本。 使用INSTALL...
target_sources给target对象增加源码,target必须时已经通过add_executable()和add_library()命令创建的。 try_compiletry_run CMake toolchains 主要用于交叉编译,Cross Compiling。 主要通过-DCMAKE_TOOLCHAIN_FILE=path/to/file来传递cmake文件,用于定义一系列交叉编译器的参数。CMAKE_CROSSCOMPILING变量会变置为true。...
add_library( hello_static STATIC ${libhello_src}) # 按照一般的习惯,静态库名字跟动态库名字应该是一致的,只是扩展名不同; #即:静态库名为 libhello.a; 动态库名为libhello.so ; # 所以,希望 "hello_static" 在输出时,不是"hello_static",而是以"hello"的名字显示,故设置如下 ...
add_library(my_project"libmylib.a"path="${CMAKE_CURRENT_SOURCE_DIR}/public/libmylib.a") 错误处理 如果依赖文件不存在,add_library命令会报告错误。如果依赖文件已存在,则不会改变其行为。 总结 add_library命令是用于在CMakeLists.txt中添加依赖库文件的常用命令。通过使用add_library命令,可以轻松地将所...
set_target_properties(MyLibrary PROPERTIES IMPORTED_LOCATION "/path/to/mylibrary.dll" # Windows # 或者 # IMPORTED_LOCATION "/path/to/mylibrary.so" # Linux INTERFACE_INCLUDE_DIRECTORIES "/path/to/mylibrary/headers" ) # 静态链接 add_library(MyLibrary STATIC IMPORTED) ...
CMAKE_LIBRARY_PATH:环境变量; CMAKE_CURRENT_SOURCE_DIR:当前处理的CMakeLists.txt文件所在路径; CMAKE_CURRENT_BINARY_DIR:target编译目录; 使用ADD_SURDIRECTORY指令可以更改该变量的值; SET(EXECUTABLE_OUTPUT_PATH < dir >) 指令不会对该变量有影响,但改变了最终目标文件的存储路径; ...
cmake_minimum_required(VERSION3.8)project(add_lib)set(LIBRARY_OUTPUT_PATH${CMAKE_CURRENT_SOURCE_DIR}/lib)set(EXECUTABLE_OUTPUT_PATH${CMAKE_CURRENT_SOURCE_DIR}/bin)add_subdirectory(sublib)include_directories(sublib/include)add_executable(${PROJECT_NAME}"main.cpp")target_link_libraries(${PROJECT_...
CMAKE_INCLUDE_PATH:环境变量,非cmake变量; CMAKE_LIBRARY_PATH:环境变量; CMAKE_CURRENT_SOURCE_DIR:当前处理的CMakeLists.txt文件所在路径; CMAKE_CURRENT_BINARY_DIR:target编译目录; 使用ADD_SURDIRECTORY指令可以更改该变量的值; SET(EXECUTABLE_OUTPUT_PATH < dir >) 指令不会对该变量有影响,但改变了最终...