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)

posted @ 2025-01-09 01:09  Little_R  阅读(296)  评论(0)    收藏  举报