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)

浙公网安备 33010602011771号