cmake_minimum_required(VERSION 2.6) set(CMAKE_C_FLAGS"-fPIC") set(CMAKE_BUILD_TYPE Release ON) add_library(test_version SHARED so.c) SET_TARGET_PROPERTIES(test_version PROPERTIES VERSION 1.2.3 SOVERSION 1) #realname版本号为1.2.3 大家可以通过readelf -d **.so.**查看相关情况。
SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello") 这样,我们就可以同时得到libhello.so和libhello.a 两个库了。 lib/CMakeLists.txt最终的的内容: SET(LIBHELLO_SRC hello.c) ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC}) ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC}) SET_TARGET...
set_target_properties(mylibrary PROPERTIES PUBLIC_HEADER include/mylibrary.h) 1. 2. 代码解释: set_target_properties(mylibrary PROPERTIES PUBLIC_HEADER include/mylibrary.h):设置动态库的属性,将include/mylibrary.h指定为动态库的头文件。 总结 通过以上的步骤,你可以解决Android CMakeLists中设置动态库找不...
第一种:通过set_property进行属性设置 第二种:通过set_target_properties批量设置多个属性 第三种:通过全局的变量,让之后创建的所有对象都享有同样的属性 从百度学的 CMake,可能会犯如下的错误 使用动态链接库的注意事项(Windows对动态链接很不友好) 问题:Windows系统中,程序运行时找不到dll 问题:如何避免手动拷贝dll...
set_target_properties(target PROPERTIES VERSION xx SOVERSION XXX ) 方法二 set(CMAKE_CXX_FLAGS " -Wl,-soname,xxx") set_target_properties(target PROPERTIES NO_SONAME 1) 7、install 可以用install命令指定编译文件的安装以及普通文件的操作、shell命令的执行 ...
(QT_DEFAULT_MAJOR_VERSION 5) endif() if (NOT TARGET Qt5::qmake) add_executable(Qt5::qmake IMPORTED) set(imported_location "${_qt5Core_install_prefix}/bin/qmake.exe") _qt5_Core_check_file_exists(${imported_location}) set_target_properties(Qt5::qmake PROPERTIES IMPORTED_LOCATION ${...
第一篇文章,记一个困扰了我很长时间的一个cmake的问题吧。 大家在用cmake时,应该经常会用到第三方so库,导入第三方so库中需要使用到set_target_properties,例如这样写: set_target_properties( Thirdlib PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/jniLibs/libThirdlib.so ...
为了实现动态库版本号,我们仍然需要使用SET_TARGET_PROPERTIES指令。具体使用方法如下: SET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.2 SOVERSION 1) VERSION指代动态库版本,SOVERSION指代API版本。将上述指令加入lib/CMakeLists.txt中,重新构建看看结果。
Scanning dependencies of target hello [100%] Building C object CMakeFiles/hello.dir/main.o Linking C executable hello [100%] Built target hello 如果需要查看 make 构建的详细过程,可以使用 make VERBOSE=1 或者 VERBOSE=1 make 命令来进行构建。
set_target_properties (foo PROPERTIES INCLUDE_DIRECTORIES ${CMAKE_Fortran_MODULE_DIRECTORY}/bar) When I build (make VERBOSE=1) this on Mac OS X I get ... -J../build/modules/foo -I../build/modules/bar When I do the same on Linux I get ... -J../build/modules/foo ......