如何在c++中使用qmake构建一个独立的共享库

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

本文关键字:一个 独立 共享 构建 c++ qmake      更新时间:2023-10-16

我用qt creator和QMake在c++中编写了一个共享库

当我用MinGW编译器编译我的项目时,我需要库libgcc_s_dw2-1.dll, libstdc++-6.dlllibwinpthread-1.dll被复制到我的DLL旁边才能工作。它的大小约为1.5兆。

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

我的项目小于100千字节,所以这些依赖项是如此之大。

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

PS 1:我读过这个,但是MinGW方法和以前一样。并且我在Microsoft Tools方法中遇到了错误。

PS 2:也许。net Framework 2.0是一个更好的选择,因为它是预装在Windows 7上的,我们可以强制。net 4.5在Windows 8/8.1/10上运行。你不同意吗?

仅静态链接标准库。您的DLL大小将明显增加(我希望这不是一个问题),但不是那么多(<1 MB)。

设置:

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

如果你使用g++,添加'——static'

我认为你不能这样做,你的项目必须设置为静态链接或动态链接,而不是两者都设置。