QT添加外部库(CMake Mingw)

链接.dll动态库

链接这个库其实还是需要在cmake中链接dll.a这个文件,这个dll.a相当于链接动态库dll的桥梁

点击查看代码
target_link_libraries(encrypt PUBLIC "${CMAKE_SOURCE_DIR}/libencryptUD.dll.a")

链接.a静态库

这个就直接链接.a即可

点击查看代码
target_link_libraries(encrypt PUBLIC "${CMAKE_SOURCE_DIR}/libencryptUD.a")

如何生成动态库或者静态库

以我的代码为例子,修改为SHARED或者STATIC即可

点击查看代码
cmake_minimum_required(VERSION 3.5)
project(encrypt VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)
file(GLOB_RECURSE CRYPTOPP_SRC
"${CMAKE_CURRENT_SOURCE_DIR}/module/cryptopp/include/*.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/module/cryptopp/include/*.c"
)
file(GLOB_RECURSE CRYPTOPP_INC
"${CMAKE_CURRENT_SOURCE_DIR}/module/cryptopp/include/*.h"
)
# 添加共享库
# add_library(encrypt SHARED
# ${CRYPTOPP_SRC}
# )
add_library(encrypt STATIC
${CRYPTOPP_SRC}
)
# 指定头文件目录
target_include_directories(encrypt PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/module/cryptopp/include"
)
add_definitions(-DCRYPTOPP_DISABLE_SSSE3=1 -DCRYPTOPP_DISABLE_ASM=1 -DCRYPTOPP_DISABLE_AESNI=1)
set_target_properties(encrypt PROPERTIES
OUTPUT_NAME "encryptUD"
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
)
set_target_properties(encrypt PROPERTIES VERSION ${PROJECT_VERSION})
target_link_libraries(${TARGET} encrypt Qt5::Core Qt5::Widgets)

本文作者:Little_R

本文链接:https://www.cnblogs.com/Little-Rainbow/p/18660850

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Little_R  阅读(4)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起