使用add_libraryCMake指令将静态库添加到项目中。 使用target_link_libraries指令,将静态库链接到目标(可执行文件)。 步骤1:创建静态库 首先,我们需要创建一个简单的静态库。在项目的CMakeLists.txt中添加以下代码: # 创建静态库 add_library(MyStaticLib STATIC src/MyStaticLib.cpp ) 1. 2. 3. 4. MyStatic...
ADD_LIBRARY(hello_static STATIC hello.c) #静态库改了名字,因为不允许库名一样,如果不改只会生成动态库。后续需要再进行改名操作。 1. 2. 3. ②利用ADD_LIBRARY无法构建同名的 静态库和共享库。为了满足这个需求,需要用到SET_TARGET_PROPERTIES() SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "...
https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options 代码语言:txt 复制 -static-libstdc++ When the g++ program is used to link a C++ program, it normally automatically links against libstdc++. If libstdc++ is available as a shared library, and the -static option is not used,...
生成目标libmessage.<扩展后缀>6add_library(message7STATIC8Message.hpp9Message.cpp10)1112# 指示cmake生成一个可执行程序,该程序通过编译、连接源文件main.cpp生成13add_executable(${PROJECT_NAME} main.cpp)1415# 链接静态库16target_link_
link_libraries(library1 <debug | optimized> library2 ...) # 直接是全路径 link_libraries(“/home/server/third/lib/libcommon.a”) # 下面的例子,只有库名,cmake会自动去所包含的目录搜索 link_libraries(iconv) # 传入变量 link_libraries(${RUNTIME_LIB}) ...
add_library:用于添加库文件。通过设置参数SHARED指定动态库,STATIC指定静态库。 add_library(my_lib SHARED my_lib.cpp)# 动态库 add_library(my_lib STATIC my_lib.cpp)# 静态库 target_link_libraries:用于指定链接的库文件。 target_link_libraries(my_target PRIVATE my_lib)# 链接动态/静态库 ...
ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC}) #对hello_static的重名为hello SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") # cmake 在构建一个新的target 时,会尝试清理掉其他使用这个名字的库,如果没有清理还是会只会构建一个动态库,不会构建出静态库 ...
link_libraries(library1 <debug | optimized> library2 ...) # 直接是全路径link_libraries(“/home/server/third/lib/libcommon.a”) # 下面的例子,只有库名,cmake会自动去所包含的目录搜索link_libraries(iconv)# 传入变量link_libraries(${RUNTIME_LIB}) ...
target_link_options(myprogram PRIVATE -static) Clang: target_link_options(myprogram PRIVATE -static-libc++ -static-libc++abi) 那如果是Android平台呢? #可以,但不推荐,因为是全局的设置,甚至可能报错。 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libc++ -static-libc++abi") ...
cmake_minimum_required(VERSION3.5)project(App)include_directories(${PROJECT_SOURCE_DIR}/../3rd/Math/include)link_libraries("Math.lib")link_directories(${PROJECT_SOURCE_DIR}/../3rd/Math/bin)add_executable(Appmain.cpp) additional library directories 项 ...