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...
Use full path of library https://stackoverflow.com/questions/14077611/how-do-i-tell-cmake-to-link-in-a-static-library-in-the-source-directory How to add libraries with relative path via TARGET_LINK_LIBRARIES? CMake: Convert relative path to absolute path, with build directory as current di...
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...
voidfunc1(char*);voidfunc2(char*); 1. 2. Create another cmake file inside "run" folder, CMakeLists.txt cmake_minimum_required(VERSION2.8.12.2)project(test)set(PROJECT_LINK_LIBS libctest_cmake.a)link_directories(/home_dir/static_lib_examples/build)add_executable(test.exe test.c)target_...
link_libraries(${COMM_LIB} ${RUNTIME_LIB}) ADD_DEFINITIONS( -O3 -g -W -Wall -Wunused-variable -Wunused-parameter -Wunused-function -Wunused -Wno-deprecated -Woverloaded-virtual -Wwrite-strings -D__WUR= -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DTIXML_USE_STL ...
ADD_SUBDIRECTORY(lib) 1. 2. 3. 接下来就自行编译了,这里就不介绍了,无非就是创建一个build,然后cmake …;make; 3.2 语法解释 在上面好像新增加了一个指令,这里我们来解释一波: # 指令ADD_LIBRARY(libname [SHARED | STATIC | MODULE ] [EXCLUDE_FROM_ALL] source1 source2 ... sourceN) ...
│ │ └── 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...