首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ UNIX 改 Windows 时,预编译中的“@”如何避免

2013-12-19 
C++ UNIX 改 Windows 时,预编译中的“@”如何处理?本帖最后由 haelue 于 2013-12-17 15:40:01 编辑求教高手,

C++ UNIX 改 Windows 时,预编译中的“@”如何处理?
本帖最后由 haelue 于 2013-12-17 15:40:01 编辑 求教高手,我在编译libxml2时遇到预编译命令:

#if @WITH_TRIO@

我知道C++预编译中加入“@”运算符是UNIX中的编译方式,如果我要在Win7 VC10里面编译,应该怎么修改?
下面的代码都是我要修改的:
#if @WITH_TRIO@
#define WITH_TRIO
#else
#define WITHOUT_TRIO
#endif

#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@

#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@"


[解决办法]
@@是编译前需要处理的变量吧,应该需要专门的配置工具来解析。例如工具遇到@WITH_TRIO@模式,它会分析用户配置的WITH_TRIO的值是多少,进行替换,举例来说如果@LIBXML_VERSION_NUMBER@为1.2的话,那么替换后得到:
#define LIBXML_VERSION 1.2
#define LIBXML_VERSION_STRING "1.2"

引用:
求教高手,我在编译libxml2时遇到预编译命令:
#if @WITH_TRIO@

我知道C++预编译中加入“@”运算符是UNIX中的编译方式,如果我要在Win7 VC10里面编译,应该怎么修改?
下面的代码都是我要修改的:
#if @WITH_TRIO@
#define WITH_TRIO
#else
#define WITHOUT_TRIO
#endif

#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@

#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@"

[解决办法]
自己写一段代码,在C++预处理前根据@VARNAMES@=VALUES对应关系表将代码中的@VARNAMES@自动替换为VALUES ?
[解决办法]

grep -r LIBXML_VERSION_NUMBER *

命令在所有文件中搜索LIBXML_VERSION_NUMBER
看能不能找到在哪里定义了LIBXML_VERSION_NUMBER

热点排行