我有一个用C ++构建的项目,它在CentOS 6,64位(VM)上编译得很好。但是,当我在CentOS 6,32位(VM)下编译时,我得到以下错误。
g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -O2 -Wall -W -D_REENTRANT -fPIE -Dsecast=1 -DQT_NO_DEBUG -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/lib/qt5/mkspecs/linux-g++ -I../../project -I../../src -I../../../geoip/libmaxminddb-0.5.3/include -I/usr/include/qt5 -I/usr/include/qt5/QtXml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtCore -I../../build/moc -I. -o ../../build/obj/controller.o ../../src/controller.cpp
In file included from ../../src/geoip/geoipdb.h:14,
from ../../src/controller.cpp:34:
../../../geoip/libmaxminddb-0.5.3/include/maxminddb.h:55: error: unable to emulate ‘TI’
这个TI属性错误是什么?如何摆脱它?
当我查看maxminddb.h文件时,第一个typedef(下面)是导致错误的地方。
#if !(MMDB_UINT128_IS_BYTE_ARRAY)
#if MMDB_UINT128_USING_MODE
typedef unsigned int mmdb_uint128_t __attribute__ ((__mode__(TI)));
#else
typedef unsigned __int128 mmdb_uint128_t;
#endif
#endif