function(copy_shared_libraries CONAN_LIB_DIRS TARGET_DIR)
foreach(LIB_DIR ${CONAN_LIB_DIRS})
file(GLOB_RECURSE LIB_FILES ${LIB_DIR}/*.so*) # 使用通配符匹配所有可能的共享库文件
foreach(LIB_FILE ${LIB_FILES})
# 获取共享库文件名 这个名字不包含路径
get_filename_component(LIB_NAME ${LIB_FILE} NAME)
# 拷贝文件 到指定目录
file(COPY ${LIB_FILE} DESTINATION ${TARGET_DIR})
endforeach()
endforeach()
endfunction()
如果未经配置,conan会将应用程序输出到bin目录下,这个目录是变量 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} 指定的。
通常我会在应用程序所在目录创建一个lib文件夹,用来存放共享库
build
bin
you_exe
lib
xxxxx.so
xxxxx.so
调用这个函数可以帮助你拷贝so,例如:
copy_shared_libraries(${CONAN_LIB_DIRS_OPENSSL} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/lib)
标签:DIRS,LIB,库到,so,Conan,拷贝,目录,DIR
From: https://www.cnblogs.com/xdblog/p/17955872