Ubuntu下编译Qreadbook
这个软件是基于QT4开发的,所以编译需要QT4的环境。
俺之前安装了个QT3.8,结果用qmake作出的Makefile就直接使用了3.8的库,导致编译(make)错误:
thomasxie@thonmasxie-laptop:~/桌面/qreadbook$ qmake -o Makefile qreadbook.pro
thomasxie@thonmasxie-laptop:~/桌面/qreadbook$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/qt3 -o main.o main.cpp
main.cpp:39:24: 错误: QApplication:没有该文件或目录
在包含自 main.cpp:41 的文件中:
mainwindow.h:42:23: 错误: QMainWindow:没有该文件或目录
mainwindow.h:43:21: 错误: QDirModel:没有该文件或目录
mainwindow.h:44:21: 错误: QSplitter:没有该文件或目录
mainwindow.h:45:21: 错误: QTreeView:没有该文件或目录
mainwindow.h:46:27: 错误: QSystemTrayIcon:没有该文件或目录
mainwindow.h:47:23: 错误: QMessageBox:没有该文件或目录
In file included from main.cpp:41:
一大堆定义找不到。
然后用新立得安装器彻底删除了QT3的内容(不包括QT4-QT3 support包),然后安装QT4.5。再次编译:
thomasxie@thonmasxie-laptop:~/桌面/qreadbook$ qmake -o Makefile qreadbook.pro
thomasxie@thonmasxie-laptop:~/桌面/qreadbook$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o mainwindow.o mainwindow.cpp
/usr/bin/moc-qt4 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. mainwindow.h -o moc_mainwindow.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp
/usr/bin/rcc -name qreadbook qreadbook.qrc -o qrc_qreadbook.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o qrc_qreadbook.o qrc_qreadbook.cpp
g++ -Wl,-O1 -o qreadbook main.o mainwindow.o moc_mainwindow.o qrc_qreadbook.o -L/usr/lib -lQtGui -lQtCore -lpthread
看上去o了,在编译目录下生产了可执行的Qreadbook。