使用GCC4.4,Qt4.7.4编译QtLua revision 221
来源:互联网 发布:软件测试理论基础 编辑:程序博客网 时间:2024/05/20 05:58
编译后不能在Qt4.7.4下使用,QtLua官方只支持Qt4.8以上版本
直接上patch
Index: CMakeLists.txt===================================================================--- CMakeLists.txt(revision 221)+++ CMakeLists.txt(working copy)@@ -13,16 +13,16 @@ SET(INSTALL_INC include CACHE PATH "Where to install headers to.") # Find Qt4-#SET(QT_USE_QTUITOOLS 1)-#SET(QT_USE_QTXML 1)-#FIND_PACKAGE(Qt4 REQUIRED)-#INCLUDE(${QT_USE_FILE})+SET(QT_USE_QTUITOOLS 1)+SET(QT_USE_QTXML 1)+FIND_PACKAGE(Qt4 REQUIRED)+INCLUDE(${QT_USE_FILE}) # Find Qt5-SET(CMAKE_INCLUDE_CURRENT_DIR ON)-FIND_PACKAGE(Qt5Widgets)-FIND_PACKAGE(Qt5Core)-FIND_PACKAGE(Qt5Xml)+#SET(CMAKE_INCLUDE_CURRENT_DIR ON)+#FIND_PACKAGE(Qt5Widgets)+#FIND_PACKAGE(Qt5Core)+#FIND_PACKAGE(Qt5Xml) #SET(CMAKE_AUTOMOC ON) # Find Lua @@ -77,6 +77,8 @@ ########################################################################### +SET(CMAKE_CXX_FLAGS "-march=i486" CACHE STRING "Architecture to tell gcc to optimize for (-march)")+ ADD_DEFINITIONS(-DHAVE_CONFIG_H) ADD_DEFINITIONS(-DQT_NO_CAST_FROM_BYTEARRAY) ADD_DEFINITIONS(-DQTLUAREF_DEBUG)@@ -87,3 +89,5 @@ ADD_SUBDIRECTORY( src ) ADD_SUBDIRECTORY( tools ) ++Index: src/CMakeLists.txt===================================================================--- src/CMakeLists.txt(revision 221)+++ src/CMakeLists.txt(working copy)@@ -3,15 +3,15 @@ # Generate moc files -QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluaconsole.hh OPTIONS -fQtLua/Console)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluauseritemselectionmodel.hh OPTIONS -fQtLua/UserItemSelectionModel)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluauseritemmodel.hh OPTIONS -fQtLua/UserItemModel)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtlualuamodel.hh OPTIONS -fQtLua/LuaModel)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluatabletreemodel.hh OPTIONS -fQtLua/TableTreeModel)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluaitemviewdialog.hh OPTIONS -fQtLua/ItemViewDialog)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluatablegridmodel.hh OPTIONS -fQtLua/TableGridModel)-QT5_WRAP_CPP(MOC_OUTFILES QtLua/qtluastate.hh OPTIONS -fQtLua/State)-QT5_WRAP_CPP(MOC_OUTFILES qtluaqtlib.hh)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluaconsole.hh OPTIONS -fQtLua/Console)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluauseritemselectionmodel.hh OPTIONS -fQtLua/UserItemSelectionModel)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluauseritemmodel.hh OPTIONS -fQtLua/UserItemModel)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtlualuamodel.hh OPTIONS -fQtLua/LuaModel)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluatabletreemodel.hh OPTIONS -fQtLua/TableTreeModel)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluaitemviewdialog.hh OPTIONS -fQtLua/ItemViewDialog)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluatablegridmodel.hh OPTIONS -fQtLua/TableGridModel)+QT4_WRAP_CPP(MOC_OUTFILES QtLua/qtluastate.hh OPTIONS -fQtLua/State)+QT4_WRAP_CPP(MOC_OUTFILES qtluaqtlib.hh) ADD_LIBRARY(qtlua SHARED @@ -34,7 +34,7 @@ ${MOC_OUTFILES}) -QT5_USE_MODULES(qtlua Widgets Core)+QT4_USE_MODULES(qtlua Core) TARGET_LINK_LIBRARIES(qtlua ${QT_LIBRARIES} ${LUA_LIBRARIES}) Index: src/QtLua/qtlualuamodel.hh===================================================================--- src/QtLua/qtlualuamodel.hh(revision 221)+++ src/QtLua/qtlualuamodel.hh(working copy)@@ -176,7 +176,7 @@ // More general purpose SizeHintRole = ::Qt::SizeHintRole,-InitialSortOrderRole = ::Qt::InitialSortOrderRole,+//InitialSortOrderRole = ::Qt::InitialSortOrderRole, UserRole = ::Qt::UserRole };Index: tools/qtlua/CMakeLists.txt===================================================================--- tools/qtlua/CMakeLists.txt(revision 221)+++ tools/qtlua/CMakeLists.txt(working copy)@@ -1,6 +1,6 @@ ADD_EXECUTABLE(qtlua_app qtlua.cc )-QT5_USE_MODULES(qtlua_app Widgets Core)+QT4_USE_MODULES(qtlua_app Core) TARGET_LINK_LIBRARIES(qtlua_app qtlua) SET_TARGET_PROPERTIES(qtlua_app PROPERTIES OUTPUT_NAME qtlua CLEAN_DIRECT_OUTPUT 1)Index: tools/uic/CMakeLists.txt===================================================================--- tools/uic/CMakeLists.txt(revision 221)+++ tools/uic/CMakeLists.txt(working copy)@@ -1,6 +1,6 @@ ADD_EXECUTABLE(qtlua_uic qtlua_uic.cc )-QT5_USE_MODULES(qtlua_uic Widgets Core Xml)+QT4_USE_MODULES(qtlua_uic Core Xml) TARGET_LINK_LIBRARIES(qtlua_uic qtlua)
郁闷的是,编译居然没通过,出错
CMakeFiles\qtlua.dir/objects.a(qtluaenum.cc.obj):qtluaenum.cc:(.text$_ZNK5QtLua10RefobjBase5_dropEv[QtLua::RefobjBase::_drop() const]+0x3e): undefined reference to `__sync_sub_and_fetch_4'
google大师说:“Update your GCC tool-chain. Or try to add -march=pentium or -march=i486, etc.”
于是,CMakeLists.txt就多了这行
SET(CMAKE_CXX_FLAGS "-march=i486" CACHE STRING "Architecture to tell gcc to optimize for (-march)")
好吧,删除编译目录,重新编译
出错,错误同上
晕,人品大爆发了,看看CXX_FLAGS有什么
libqtlua-build\src\CMakeFiles\qtlua/includes_CXX.rsp
-isystem y:/Qt/qt474/mingw/include -isystem y:/Qt/qt474/mingw/include/QtUiTools -isystem y:/Qt/qt474/mingw/include/QtGui -isystem y:/Qt/qt474/mingw/include/QtXml -isystem y:/Qt/qt474/mingw/include/QtCore -Iy:/develop/Lua51/include -IE:/myworkspace/libqtlua/libqtlua-build -IE:/myworkspace/libqtlua/libqtlua/src -Iy:/Qt/qt474/mingw/mkspecs/default
把-march=i486加到前面,编译,通过了:)
- 使用GCC4.4,Qt4.7.4编译QtLua revision 221
- RHEL6.4编译安装gcc4.8.1
- 使用vc9 静态编译qt4
- android ndk使用gcc4.7 toolchain编译项目
- android ndk使用gcc4.7 toolchain编译项目
- linux下编译gcc4
- 编译GCC4.5
- 编译GCC4.5
- gcc4.5编译
- GCC4.7编译记录
- GCC4.7编译记录
- 编译安装Gcc4.8
- GCC4.7编译记录
- GCC4.7编译记录
- 源代码编译GCC4.6.1
- gcc4.9.2源码编译
- vs2005环境编译QT4.7.4
- ubuntu12.04 编译gcc4.8.0
- 威威猫系列故事——篮球梦
- libcurl简单使用介绍
- 关于Integer大小比较的问题
- iPhone 通过UIRequiredDeviceCapabilities指定程序适用于哪些设备
- Linux下设置struts2 struts.multipart.saveDir问题
- 使用GCC4.4,Qt4.7.4编译QtLua revision 221
- puTTY与SecureCRT的比较
- win8使用习惯设置
- android访问http服务器的几种方法
- 工业企业财务账务处理
- 小Q系列故事——电梯里的爱情
- IMS架构测试
- android webservice
- 继承与派生基础车程序