如何将zlib1.dll合并到C中的可执行文件中?

时间:2010-05-08 13:46:19

标签: c dll cmake

我的可执行文件需要zlib1.dll才能运行,

我需要时不时地把它们放在一起。

如何将其合并到可执行文件中以避免麻烦?

我正在使用cmake来构建可执行文件。

更新

zlib1.dll并非直接包含在我的程序中,但需要libpng14-14.dll(gtk捆绑的一个dll)

2 个答案:

答案 0 :(得分:1)

听起来您想要静态链接,以便您的程序不需要zlib1.dll的存在才能运行。但zlib1.dll动态链接库(这就是DLL所代表的!),因此您无法静态链接它。您需要做的第一件事是找到此库的静态版本。在Windows上,它通常以.lib扩展名结束。

我不熟悉cmake,所以我会让其他人回答有关如何让cmake使用静态库的问题的一部分,一旦你同时使用它们。

答案 1 :(得分:1)

抱歉,没有办法混合它。您必须静态或动态地编译和链接。我试了一下 - 它不起作用。

因此,如果libpng.dll需要zlib.dll,则无法将zlib转换为静态库。您还必须将libpng编译为静态库。

我已经完成了几次,PNG,ZLIB(以及JPEG,TIFF图像格式库)的makefile非常好。如果您需要超过30分钟来确定要做什么,您应该将其视为对C makefile技能的良好培训。