2015-07-11 77 views
0

我需要編譯的Linux命令行上的Qt應用程序,但我有一些問題,包括Qt庫QT:命令編譯QT文件

這些都是包括在我的程序: InterfazArchivador.cpp:

#include "InterfazArchivador.h" 
#include "ui_InterfazArchivador.h" 
#include <iostream> 
#include <QMainWindow> 

InterfazArchivador.h:

#include <QMainWindow> 

主營:

#include "InterfazArchivador.h" 
#include <QApplication> 

我已經試過這樣的事情:

gcc -m32 -c -I/home/sandarka/Qt/5.4/gcc/include/QtWidgets /home/sandarka/Qt/5.4/gcc/include/QtWidgets/qwidget.h /home/sandarka/Qt/5.4/gcc/include/QtGui main.cpp ArchInterfaz.cpp 

,但我得到這樣的錯誤:

/home/sandarka/Qt/5.4/gcc/include/QtWidgets/qwidget.h:37:31: fatal error: QtGui/qwindowdefs.h: No existe el archivo o el directorio 
#include <QtGui/qwindowdefs.h> 
       ^
compilation terminated. 
In file included from /home/sandarka/Qt/5.4/gcc/include/QtWidgets/QMainWindow:1:0, 
      from ArchInterfaz.h:4, 
      from main.cpp:1: 
/home/sandarka/Qt/5.4/gcc/include/QtWidgets/qmainwindow.h:37:31: fatal error: QtWidgets/qwidget.h: No existe el archivo o el directorio 
#include <QtWidgets/qwidget.h> 
        ^
compilation terminated. 
In file included from /home/sandarka/Qt/5.4/gcc/include/QtWidgets/QMainWindow:1:0, 
      from ArchInterfaz.h:4, 
      from ArchInterfaz.cpp:1: 
/home/sandarka/Qt/5.4/gcc/include/QtWidgets/qmainwindow.h:37:31: fatal error: QtWidgets/qwidget.h: No existe el archivo o el directorio 
#include <QtWidgets/qwidget.h> 
         ^
compilation terminated. 

我不知道什麼是錯,也許我需要包括更多的庫?

回答

1

使用都包括路徑:

gcc -m32 -c -I/home/sandarka/Qt/5.4/gcc/include/ -I/home/sandarka/Qt/5.4/gcc/include/QtWidgets -I/home/sandarka/Qt/5.4/gcc/include/QtGui main.cpp ArchInterfaz.cpp 

基本上你必須通過編譯器的兩條路徑:

  • 一個誰全球包含了所有Qt的模塊
  • 一個誰包含單一的Qt你想使用的模塊

爲什麼兩個路徑爲同一個文件?

在Qt模塊中,<QtModuleName/FileName>規則中包含其他文件,如果沒有模塊名稱,您必須手動將其告知要搜索的子目錄,否則編譯器會期望Qt include root文件。

+0

Thak你的答案,它的作品,我沒有這些錯誤了,但現在我得到致命錯誤:ui_InterfazArchivador.h:沒有existe el archivo o el directorio #包括「ui_InterfazArchivador.h」你知道如何解決這個問題? –

+0

你還沒有編譯.ui文件,'uic InterfazArchivador.ui -o ui_InterfazArchivador.h'應該執行 – gengisdave

+0

這個工作哦,以及如何從命令行編譯.ui文件。我在上面的命令的最後嘗試,但錯誤仍然存​​在。 –