ifdef无法在资源文件中工作

时间:2014-01-26 04:03:17

标签: c++ gcc g++4.8 windres

我正在尝试使用:

#include "Resource.h"

#ifdef __x86_64
IDR_D3D9X43     BINARY              "D3DX9_43_64.dll"
#else
IDR_D3D9X43     BINARY              "D3DX9_43_32.dll"
#endif

在我的资源文件(.rc)中。当我为x64编译时,它应该包含x64资源。当我为x32编译时,它应该包含x32资源。但是,它没有......

正在使用以下编译:

x86_64-w64-mingw32-g++.exe -Wall -fexceptions -O2 -m64 -std=c++11  -c C:\Users\School\Desktop\TestLoader\main.cpp -o obj\Release\main.o
windres.exe --target=pe-x86-64  -J rc -O coff -i C:\Users\School\Desktop\TESTLO~1\RESOUR~1\Resource.rc -o obj\Release\Resources\Resource.res
x86_64-w64-mingw32-g++.exe  -o bin\Release\TestLoader.exe obj\Release\main.o  obj\Release\Resources\Resource.res -s -m64 -static -static-libgcc -static-libstdc++  

输出文件是bin \ Release \ TestLoader.exe,大小为3.02 MB

用于x64编译,它使用:

x86_64-w64-mingw32-g++.exe -Wall -fexceptions -O2 -m32 -std=c++11  -c C:\Users\School\Desktop\TestLoader\main.cpp -o obj\Release\main.o
windres.exe --target=pe-i386  -J rc -O coff -i C:\Users\School\Desktop\TESTLO~1\RESOUR~1\Resource.rc -o obj\Release\Resources\Resource.res
x86_64-w64-mingw32-g++.exe  -o bin\Release\TestLoader.exe obj\Release\main.o  obj\Release\Resources\Resource.res -s -m32 -static -static-libgcc -static-libstdc++  

用于x32编译。

为什么它没有条件地包含特定资源的任何想法?它总是包含文件顶部的第一个资源..也就是x64文件。

0 个答案:

没有答案