如何使用 qmake 在 C++ 中构建独立的共享库?

How to build an standalone shared library in C++ using qmake?

我使用 qt creator 和 QMake 用 C++ 编写了一个共享库

当我使用 MinGW 编译器编译我的项目时,我需要将库 libgcc_s_dw2-1.dlllibstdc++-6.dlllibwinpthread-1.dll 复制到我的 DLL 旁边才能工作。大约有 1.5 兆字节大小。

当我使用 MSVC 2015 编译器编译我的项目时,我需要在部署系统上安装 Visual C++ Redistributable 2015 x86。大约有 13 兆字节大小。

我的项目大小不到 100 KB,所以这些依赖关系很大。

如何将它们嵌入我的图书馆?或者如何在 Windows 7 或更高版本的项目旁边安装或复制更少的依赖项?

PS 1:我看过this,但是MinGW的方法和以前一样。而且我在Microsoft Tools方法中遇到了错误。

PS 2:也许 .Net Framework 2.0 是更好的选择,因为它预装在 Windows 7 上,我们可以在 [=31] 中强制 .Net 4.5 运行 它=] 8/8.1/10。你不老吗?

我认为你不能那样做,你的项目必须设置为静态或动态link,而不是两者一起设置。

只是 link 个静态标准库。您的 DLL 大小会明显增加(我希望这不是问题)但不会增加那么多 (<1 MB)。

为此:

如果您使用 MSVC,请将 /MT 添加到命令行(您也可以在项目属性 window 中找到它)。

如果您使用 g++ 添加“--static”。