在QT官網下載最新的版本

1.在QT官網下載最新的版本http://qt-project.org/downloads
我下的是qt-opensource-linux-x86-5.3.1.run,在終端執行

sudo chmod a+x qt-opensource-linux-x86-5.3.1.run
./qt-opensource-linux-x86-5.3.1.run

然後選擇安裝目錄,默認是/home/username/QT5.3.1,我選擇在/opt/QT5

2.安裝成功後執行qmake -v 會發現找不到qmake命令,這是因為qmake沒有加入到環境變量中
在~/.bashrc中的最後添加

export PATH="/opt/QT5/5.3/gcc/bin":$PATH

然後要將剛加入的環境變量生效,可以註銷之後再登錄,也可以執行

source ~/.bashrc

在執行qmake -v的話,會有

root@zwq:~# qmake -v
QMake version 3.0
Using Qt version 5.3.1 in /opt/QT5/5.3/gcc/lib

3.現在談談在終端中編譯一個簡單的qt程序 代碼為

helloworld.cpp

#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QLabel hello("<center>Welcome to my first WikiHow Qt program</center>");
    hello.setWindowTitle("My First WikiHow Qt Program");
    hello.resize(400, 400);
    hello.show();
    return app.exec();
}

使用qmake命令編譯

qmake -project
qmake
make
  • helloworld.pro
######################################################################
# Automatically generated by qmake (3.0) ?? 1? 22 16:13:26 2017
######################################################################

TEMPLATE = app
TARGET = test_qt
INCLUDEPATH += .

# Input
SOURCES += test_qt.cpp
QT += widgets

得到-lGL的鏈接錯誤,安裝mesa

apt-get install libgl1-mesa-dev

但是得到了一些新的鏈接錯誤:

main.o: In function `main':
main.cc:(.text.startup+0x27): undefined reference to `QApplication::QApplication(int&, char**, int)'
main.cc:(.text.startup+0x56): undefined reference to `QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)'
main.cc:(.text.startup+0x84): undefined reference to `QWidget::setWindowTitle(QString const&)'
main.cc:(.text.startup+0xa9): undefined reference to `QWidget::resize(QSize const&)'
main.cc:(.text.startup+0xb1): undefined reference to `QWidget::show()'
main.cc:(.text.startup+0xb6): undefined reference to `QApplication::exec()'
main.cc:(.text.startup+0xc1): undefined reference to `QLabel::~QLabel()'
main.cc:(.text.startup+0xc9): undefined reference to `QApplication::~QApplication()'
main.cc:(.text.startup+0xe5): undefined reference to `QApplication::~QApplication()'
main.cc:(.text.startup+0x106): undefined reference to `QLabel::~QLabel()'
main.cc:(.text.startup+0x118): undefined reference to `QLabel::~QLabel()'
collect2: error: ld returned 1 exit status
make: *** [helloworld] Error 1

在 helloworld.pro文件中添加一行:

QT+=widgets

重新編譯。好了。

再次make就可以編譯成功了


书籍推荐