DD-L / lproxy

8 stars 3 forks source link

ERROR 宏污染 #159

Closed DD-L closed 8 years ago

DD-L commented 8 years ago

在 MinGW 环境下编译日志库:

宏定义部分: 1

实现部分: 1

编译命令:

g++ -E -P

1

生成代码文件: 1

ERROR 被神奇的临时变成了 0,其他都一切正常

测试:

  1. g++ -c  -Wall -D_REENTRANT -DLOG_LOCKFREE_QUEUE   -std=gnu++0x  -I../lproxy-local-android  -I../lproxy-local-android/lproxy/contrib/boost/boost_1_57_0  -I../lproxy-local-android/lproxy/src/core  -o loglevel.o ../lproxy-local-android/lproxy/src/core/log/loglevel.cpp

    编译没有问题

  2. 但是用

    g++ -c -pipe -fno-keep-inline-dllexport -include winsock2.h -g -std=c++0x -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DLOG_LOCKFREE_QUEUE -D_REENTRANT -DBOOST_REGEX_NO_LIB -DBOOST_DATE_TIME_SOURCE -DBOOST_SYSTEM_NO_LIB -DQT_QML_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_WEBSOCKETS_LIB -DQT_NETWORK_LIB -DQT_WEBCHANNEL_LIB -DQT_CORE_LIB -I../lproxy-local-android -I. -I../lproxy-local-android/lproxy/contrib/boost/boost_1_57_0 -I../lproxy-local-android/lproxy/contrib/cryptopp -I../lproxy-local-android/lproxy/src/core -I../lproxy-local-android/lproxy/src/core/boost_build -ID:/Qt/QtDev/5.5/mingw492_32/include -ID:/Qt/QtDev/5.5/mingw492_32/include/QtQuick -ID:/Qt/QtDev/5.5/mingw492_32/include/QtGui -ID:/Qt/QtDev/5.5/mingw492_32/include/QtANGLE -ID:/Qt/QtDev/5.5/mingw492_32/include/QtQml -ID:/Qt/QtDev/5.5/mingw492_32/include/QtWebSockets -ID:/Qt/QtDev/5.5/mingw492_32/include/QtNetwork -ID:/Qt/QtDev/5.5/mingw492_32/include/QtWebChannel -ID:/Qt/QtDev/5.5/mingw492_32/include/QtCore -Idebug -ID:/Qt/QtDev/5.5/mingw492_32/mkspecs/win32-g++  -o loglevel.o ../lproxy-local-android/lproxy/src/core/log/loglevel.cpp

    这行命令编译就会出现“宏污染”的问题: image

DD-L commented 8 years ago

一个简单粗暴的解决方法是,在代码中添加 #undef ERROR