TDM-GCC w64脚本改变32bit的windres?

时间:2013-09-14 18:40:07

标签: c++ cross-compiling tdm-mingw windres

尝试在XP SP3上运行TDM-GCC(4.7.1) - 我现在只需要一个c ++ 32位版本。似乎windres格式不正确,我的.rc文件失败了构建:

x86_64-w64-mingw32-g++.exe  -Wall -m32 -s -D_M_X86 -DBUILD_DLL -DNDEBUG     -c C:\SynthEditSDK\TD_SV\SV.cpp -o obj\Release\TD_SV\SV.o
windres.exe  -J rc -O coff -i C:\SYNTHE~1\TD_SV\TD_SV.rc -o obj\Release\TD_SV\TD_SV.res
x86_64-w64-mingw32-g++.exe -shared -Wl,--output-def=bin\Release\libTD_SV -Wl,--out-implib=bin\Release\libTD_SV -Wl,--dll  obj\Release\se_sdk3\mp_sdk_audio.o obj\Release\se_sdk3\mp_sdk_common.o obj\Release\TD_SV\SV.o  obj\Release\TD_SV\TD_SV.res  -o bin\Release\TD_SV.sem -Wl,--kill-at  -static-libgcc -m32  -luser32 
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.7.1/../../../../x86_64-w64-mingw32/bin/ld.exe: i386:x86-64 architecture of input file `obj\Release\TD_SV\TD_SV.res' is incompatible with i386 output
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 2 seconds)
0 errors, 2 warnings (0 minutes, 2 seconds)

我的资源文件(TD_SV.rc)似乎是错误:

TD_SV.res' is incompatible with i386 output

我一直在谷歌搜索几个小时,我最接近解决方案就在这里:

http://backyardcode.com/

他建议使用这个剧本 - 但我无法弄清楚如何改变它以满足我的需求 - 任何帮助都赞赏!

  

$ rescomp [[   如果(GetProjectManager()。GetActiveProject()。GetActiveBuildTarget()。匹配(_T( “Debug32”))   ||   GetProjectManager()。GetActiveProject()。GetActiveBuildTarget()。匹配(_T( “Release32”)))   {print(_T(“ - D USE_X86_MODE -F pe-i386”)); }]] -i $ file -J rc -o   $ resource_output -O coff $ res_includes

此外 - 是否有任何TDM-GCC(预构建/安装程序类型)替代方案?我真正需要的是使用石墨选项的32位构建。还使用CodeBlocks IDE。

此致 安德鲁

1 个答案:

答案 0 :(得分:6)

要查看所有可能的windres参数,您可以请求帮助:

  

x86_64-w64-mingw32-windres.exe - help

对于Windows 32位格式,您需要 coff 格式与 pe-i386 目标。

基本上,您必须在 -O coff 标志后添加 -F pe-i386 (或 - target = pe-i386 )如果你手动生成它,请到命令行。

在GNU autotools中,它是关于 RCFLAGS 。因此,如果有一些配置脚本,只需添加

  

./ configure RCFLAGS =“ - output-format = coff --target = pe-i386”........