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

时间:2016-11-15 14:02:12

标签: c++ visual-c++ dll mingw 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千字节,因此这些依赖性非常大。

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

PS 1:我已阅读this,但MinGW方法与之前相同。我在Microsoft Tools方法中遇到了错误。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

只需静态链接标准库。你的DLL大小会明显增加(我希望它不是问题)但不是那么多(<1 MB)。

要做到这一点:

如果您使用MSVC add / MT命令行(您也可以在项目属性窗口中找到它)。

如果你使用g ++ add'--static'。