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

问题描述:

我已经用C编写的共享库++使用Qt创建者和QMAKE如何使用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中运行它。你不老吗?

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

为了做到这一点:

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

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

+0

/MT做了诡计,我曾尝试过,但我不知道它为什么现在起作用。该项目是30 KB,现在是99 KB –

+0

99KB!祝你好运哥们。有时如果你静态使用的其他库不是用这个标志构建的,那么/ MT将不起作用。它发生。不用担心,但你必须再次用这面旗子来建造它们! – Shahin

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

+0

你的意思是没有办法建立一个单一的图书馆,并把它交给别人? –