paip.c++ 宏的展开调试.
paip.c++ 宏的展开调试.
这个需要宏调试...宏调试ms没有好的工具.只好手工调试.
我使用的ide是qt creator..
比如.
#define Y X*2
#define X 3
//#include <iostream>
using namespace std;
int main()
{
cout<<Y;
return 0;
}
第一,把//#include <iostream>注释掉,贝儿扩展开代码太长了..
第2.编译这个cpp,ide会出来提示..不个其中的参数改给挂..
g++ -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -I..\macroExtend -I"." -I"..\..\Qt\Qt5.1.1\5.1.1\mingw48_32\mkspecs\win32-g++" -E ..\macroExtend\main.cpp
注意:-E必须大写..
第3.运行这个命令.出来以下宏的运行结果..
using namespace std;
int main()
{
cout<<3*2;
return 0;
}
参考:
利用GCC预处理展开宏 - DYF的专栏 - 博客频道 - CSDN.NET.htm
[笔记]使用gcc的-E -P选项展开源代码中的宏.htm
这个需要宏调试...宏调试ms没有好的工具.只好手工调试.
我使用的ide是qt creator..
比如.
#define Y X*2
#define X 3
//#include <iostream>
using namespace std;
int main()
{
cout<<Y;
return 0;
}
第一,把//#include <iostream>注释掉,贝儿扩展开代码太长了..
第2.编译这个cpp,ide会出来提示..不个其中的参数改给挂..
g++ -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -I..\macroExtend -I"." -I"..\..\Qt\Qt5.1.1\5.1.1\mingw48_32\mkspecs\win32-g++" -E ..\macroExtend\main.cpp
注意:-E必须大写..
第3.运行这个命令.出来以下宏的运行结果..
using namespace std;
int main()
{
cout<<3*2;
return 0;
}
参考:
利用GCC预处理展开宏 - DYF的专栏 - 博客频道 - CSDN.NET.htm
[笔记]使用gcc的-E -P选项展开源代码中的宏.htm