如何将zlib1.dll合并到C中的可执行文件中?
我的可执行文件需要如何将zlib1.dll合并到C中的可执行文件中?,c,dll,cmake,C,Dll,Cmake,我的可执行文件需要zlib1.dll才能运行 我需要时不时地让他们在一起 如何将其合并到可执行文件中以避免麻烦 我正在使用cmake构建可执行文件 更新 zlib1.dll不是我的程序直接包含的,而是libpng14-14.dll(gtk捆绑包中的一个dll)听起来你想静态链接,这样你的程序就不需要存在zlib1.dll。但是zlib1.dll是一个动态链接库(这就是dll所代表的!),所以不能静态链接它。您需要做的第一件事是找到此库的静态版本。在windows上,它通常以扩展名.lib结束 我
zlib1.dll
才能运行
我需要时不时地让他们在一起
如何将其合并到可执行文件中以避免麻烦
我正在使用cmake构建可执行文件
更新
zlib1.dll
不是我的程序直接包含的,而是libpng14-14.dll
(gtk捆绑包中的一个dll)听起来你想静态链接,这样你的程序就不需要存在zlib1.dll
。但是zlib1.dll
是一个动态链接库(这就是dll所代表的!),所以不能静态链接它。您需要做的第一件事是找到此库的静态版本。在windows上,它通常以扩展名.lib
结束
我对cmake不太熟悉,所以我会让其他人回答关于如何让cmake使用静态库的问题,一旦你两者都有了。很抱歉,没有办法混合使用。您必须静态或动态编译和链接。我试过了,它不起作用 因此,如果libpng.dll需要zlib.dll,则无法将zlib转换为静态库。您还必须将libpng编译为静态库
我已经做过几次了,来自PNG、ZLIB(还有JPEG、TIFF图像格式库)的makefiles非常好。如果您需要30分钟以上的时间来确定要做什么,您应该将其视为对您的C makefile技能的良好培训。如果不需要cmake,您将如何做?这取决于您的编译器。我不知道zlib1.dll是通过
LoadLibrary
链接还是通过LoadLibrary链接。如果是后者,则可以修复。