2011-03-12 71 views
2

我下載了這個:http://get.qt.nokia.com/qt/source/qt-mac-opensource-4.7.2.dmg並安裝它。 然後我得到了一個Qt helloworld.cc。如何在Mac OS上編譯命令行中的Qt代碼

#include <QApplication> 
#include <QPushButton> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 

    QPushButton hello("Hello world!"); 
    hello.resize(100, 30); 

    hello.show(); 
    return app.exec(); 
} 

我試圖編譯它,但失敗了。

我該如何解決 「

‘的QApplication’在 此範圍未聲明」?

回答

3

它適用於我。你沒有顯示你的命令行,但是你似乎沒有通過正確的標誌來告訴你的編譯器頭/框架在哪裏。下面是我用什麼:

g++ -I /Library/Frameworks/QtGui.framework/Versions/4/Headers \ 
    -o example example.cpp \ 
    -framework QtGui -framework QtCore 
+0

時,堅持使用*.cpp文件命名是個好主意,謝謝bro。你節省我的時間! –

+0

使用單行.pro文件和「qmake; make」而不是直接調用g ++會更好嗎? –

+0

如果您不想做一個快速的hello world測試,那麼編譯Qt軟件的正確方法是使用項目文件和qmake。 – koan

4

,你也可以做到這一點(我希望我沒有錯):

$ qmake -project 
$ qmake 
$ make 
當然,你應該cd到源文件的

。另外,我認爲當您使用Qt

+0

Qt中的'* .cc'文件沒有問題。 – koan

+0

MAC上的qmake會默認創建xproject項目。必須使用qmake和開關。例如:qmake -spec macx-g ++ –

+0

@koan:我不是說有問題,而是一個好主意。對我來說* .cc文件與純C相關聯。@Valentin Heinitz:我已經從源代碼編譯Qt,並且默認生成一個makefile。我認爲它可以在.pro文件中配置 - 默認生成的內容。 –