我有一个使用libcurl
库的程序。在编译代码以使.exe文件工作之后,我必须将libcurl.dll
放在与exe文件相同的文件夹中。有没有办法将此libcurl.dll文件隐式添加到.exe文件中,因此它不需要dll文件?
答案 0 :(得分:1)
您可以将任何有效负载作为自定义资源添加到可执行映像,包括其他二进制文件(请参阅Creating a New Custom or Data Resource)。在应用程序启动期间,您必须提取.dll并将其保存到磁盘。这还要求您将库导入标记为/DELAYLOAD
(请参阅Specifying DLLs to Delay Load)。否则,由于未解决的导入,加载程序将失败。
对您的问题更自然的解决方案是将cURL编译为静态导入库并静态链接到它。这会将libcurl代码编译为最终的可执行映像。有关构建静态库的说明,请访问How to build cURL static library with SSL support on Windows。
答案 1 :(得分:1)
您可以尝试使用开源pefrmdllembed将DLL合并到EXE文件中。
命令行: pefrmdllembed.exe -impinj myprogram.exe libcurl.dll myprogram_withcurl.exe
它会生成新的“myprogram_withcurl.exe”,您可以发送它而不是原始的EXE。应该工作大多数DLL。