我想创建一个.dll
库,它的所有依赖项都打包在.dll
中。
然而,似乎没有一种简单的方法可以用Cmake来实现这一点。我的设置:
cmake_minimum_required(VERSION 3.0.0)
project(Main VERSION 0.1.0)
add_library(Main SHARED Main.cpp)
find_package(libzippp REQUIRED)
target_link_libraries(Main PRIVATE libzippp::libzippp)
这将产生Main.dll
和libzippp.dll
。
我希望将libzippp.dll
打包(静态链接)到Main.dll
中。
1条答案
按热度按时间3htmauhk1#
当然,你不能把一个DLL打包到另一个DLL中。你必须首先把
libzippp
做成一个静态库。要做到这一点,在CMake命令行中把BUILD_SHARED_LIBS
设置为NO
来构建libzippp
。这样,当你转到find_package
时,libzippp::libzippp
就会变成一个静态库。这很容易显示以下步骤: