我的可执行文件需要zlib1.dll
才能运行,
我需要时不时地把它们放在一起。
如何将其合并到可执行文件中以避免麻烦?
我正在使用cmake来构建可执行文件。
更新
zlib1.dll
并非直接包含在我的程序中,但需要libpng14-14.dll
(gtk捆绑的一个dll)
答案 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技能的良好培训。