【发布时间】:2010-10-18 13:02:31
【问题描述】:
在 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++ 预处理器以不同方式处理。我该如何解决这个问题?
【问题讨论】:
标签: c++ g++ c-preprocessor codeblocks