如何使用MinGW编译工具创建仅包含资源的DLL?
用MinGW创建仅含资源的DLL完全可行
当然可以用MinGW生成纯资源DLL,不需要额外找开源工具,用MinGW自带的工具链就能搞定,核心是跳过代码编译步骤,直接把资源文件链接成DLL:
- 第一步:用
windres把你的RC资源文件编译成.res格式的目标文件windres your_resources.rc -o your_resources.res - 第二步:直接用MinGW的链接器(
ld)或者gcc把.res文件打包成DLL,不需要任何C/C++代码
用ld的命令:
或者用ld -shared -o resource_only.dll your_resources.resgcc(它会自动调用ld处理):gcc -shared -o resource_only.dll your_resources.res
关于链接警告的处理
你可能会遇到类似“找不到入口点DllMain”的警告,这是因为链接器默认期望DLL有入口函数,但纯资源DLL根本不需要这个函数。你可以直接忽略这个警告,生成的DLL完全可用;如果想消除警告,只需要创建一个空的.def文件,内容如下:
LIBRARY "resource_only" EXPORTS
然后把.def文件加入链接命令:
ld -shared -o resource_only.dll your_resources.res resource.def
这样生成的DLL就和MSVC创建的纯资源DLL功能完全一致,里面只有资源,没有任何可执行机器码。
内容的提问来源于stack exchange,提问作者Rainb
相关产品推荐
相关产品推荐

