在 C++ CodeBlocks 项目中,我在项目设置、编译器设置、#define 中添加了以下定义:
_调试 DATA_DIR=\"/媒体/共享/SiX/数据\"
这将产生以下 g++ 命令行:
g++ -Wall -g -fPIC -save-temps -D_DEBUG -DDATA_DIR=\"/media/Shared/SiX/Data\" -I../包括 -c /media/Shared/SiX/SiXConfiguration/PathManager.cpp -o obj/Debug/PathManager.o
此代码无法编译:
char* commonDataDir; #ifdef 数据目录 commonDataDir = DATA_DIR; #万一
查看预处理器输出文件,我看到源代码行以这种方式扩展:
commonDataDir = /media/Shared/SiX/Data;
我预计:
commonDataDir = "/media/Shared/SiX/Data";
从 Eclipse CDT 正确编译了相同的代码:
g++ -D_DEBUG -DDATA_DIR=\"/media/Shared/SiX/Data\" -I"/media/Shared/SiX (copy)/Includes" -O3 -Wall -c -fmessage-length=0 -fPIC -ggdb - MMD -MP -MF"PathManager.d" -MT"PathManager.d" -o"PathManager.o" "../PathManager.cpp"
因此,相同的命令行参数由 g++ 处理器以不同方式处理。我怎样才能解决这个问题?