Closed DD-L closed 8 years ago
在 MinGW 环境下编译日志库:
宏定义部分:
实现部分:
编译命令:
g++ -E -P
生成代码文件:
ERROR 被神奇的临时变成了 0,其他都一切正常
ERROR
0
测试:
用
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
编译没有问题
但是用
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
这行命令编译就会出现“宏污染”的问题:
一个简单粗暴的解决方法是,在代码中添加 #undef ERROR
#undef ERROR
在 MinGW 环境下编译日志库:
宏定义部分:
实现部分:
编译命令:
生成代码文件:
ERROR
被神奇的临时变成了0
,其他都一切正常测试:
用
编译没有问题
但是用
这行命令编译就会出现“宏污染”的问题: