target_link_options(myprogram PRIVATE -static-libstdc++ -static-libgcc) #或者要想全部使用静态链接的话(但并不推荐,甚至可能有些操作系统会报错): target_link_options(myprogram PRIVATE -static) Clang: target_link_options(myprogram PRIVATE -static-libc++ -static-libc++abi) 那如果是Android平台呢? #...
在前面的基础上: 迦非喵:CMake从入门到精通(四)同时生成动态库和静态库(shared lib,static lib)继续重构。 这里展示顺序: 1、简单生成静态库: 迦非喵:CMake从入门到精通(二)静态库static library2、简…
GET_TARGET_PROPERTY(OUTPUT_VALUE hello_static OUTPUT_NAME) MESSAGE(STATUS "This is the hello_static OUTPUT_NAME:"${OUTPUT_VALUE}) 如果没有这个属性则会返回NOTFOUND.而使用以上的例子会出现一个问题,那就是会发现libhello.a存在,但是libhello.so会消失,因为cmake在构建一个新的target时,会尝试清理掉其他...
add_library(hello_library STATIC src/Hello.cpp)# 添加头文件目录target_include_directories(hello_library PUBLIC ${PROJECT_SOURCE_DIR}/include)# 定义一个可执行文件add_executable(hello_binary src/main.cpp)message(STATUS ${hello_binary})# 安装静态库到 /usr/local/lib 目录install(TARGETS hello_lib...
cmake_minimum_required(VERSION 2.6) project(PICMake) include(${CMAKE_CURRENT_LIST_DIR}/cmake/PICMake.cmake)# Use PICMake if(FALSE) # Tree style add_subdirectory(src) else() # All in one pi_add_target(StaticLibDemo STATIC src/StaticLibDemo) # 静态库示例 pi_add_target(SharedLibDemo...
# 在生成库文件时,库文件名后添加_shread, _static # 这样编译的时候 x_shared, x_static 前缀名不同,避免了冲突 add_library(target_shared SHARED ${SRC_LIST}) target_link_libraries(target_shared ${LINK_LIB_LIST}) # 在输出时,希望以本来的名字显示,x.so, x.a set_target_properties(target_sha...
{CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)link_directories(${PROJECT_SOURCE_DIR}/lib)#指定静态库的路径,否则自定义的链接库找不到link_libraries(libcalc_static.a)#指定静态库,可以全名,也可以掐头去尾set(EXECUTABLE_OUTPUT_PATH${PROJECT_SOURCE_DIR}/bin)#指定可执行文件生成的位置,PROJECT_SOURCE_DIR为C...
│ │ └── libb.h │ └── src │ └── libb.cpp └── main └── main.cpp 其中,libA是一个独立的库,libB依赖于libA,并且main程序依赖于libB。 在CMakeLists.txt文件中,我们可以这样配置: add_library(libA STATIC liba.cpp) target_include_directories(libA PUBLIC include) add_library...
define定义宏,格式为define: USE_UTF8=1,可用逗号间隔多个宏 mode设置目标格式:exe,lib,dll,win几种 out设置目标文件名 int设置临时目录,放置.o文件和中间文件 flnk连接时传入的参数,逗号分割 wlnk连接时使用-Wl,前缀直接透传给ld的参数,逗号分割 还支持几种辅助配置: ...
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [...]) 通过指定的源文件,创建库文件目标。 生成的库文件名取决于平台,可能是lib<name>.a或<name>.lib。 STATIC 生成静态库,编译文件的打包,用于链接到其它目标。 SHARED 生成...