Qtアプリケーションをコンソールからコンパイルしようとしています。ここに仕様があります: MCBC 3.0(Qtとgccがプリインストールされています)、Qt 4.6.4、gcc v4.1.2、qmake v2.01aGCCはQtライブラリやインクルードファイルを認識できません
私のテスト用qtアプリには、basket.proとmain.cppという2つのファイルしか含まれていません。
basket.pro:
TARGET = basket
TEMPLATE = app
SOURCES += main.cpp
HEADERS +=
main.cppに:
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
return a.exec();
}
私はコンソールからそのアプリをコンパイルする必要があります。
私は2台の仮想マシンを持っています。 VM#1はQtCreatorをインストールし、QtCreatorは問題なくこのアプリケーションをコンパイルします。また、アプリケーションは "qmake"と "make"によってコンソールからコンパイルできます。しかし、QtCreatorがインストールされていないVM#2があり、そこから問題が発生しています。 私はQtのライブラリ、インクルードファイル、リンクされたlibsへの明示的に定義されたパスでgccコマンドだけを使用しようとするQtCreatorによって作成されたMakefileを使用しようとする "qmake make"コマンドでアプリケーションをコンパイルしようとしました。例えば、私は成功したコンパイルのためにQtCreatorで、このアプリを使用し2つのgcc comandsを、使用します。
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt46/mkspecs/linux-g++ -I. -I/usr/lib/qt46/include/QtCore -I/usr/lib/qt46/include/QtGui -I/usr/lib/qt46/include -I. -o main.o main.cpp
g++ -o basket main.o -L/usr/lib/qt46/lib -lQtGui -L/usr/lib/qt46/lib -lQtCore -lpthread
それで2番目のコマンドを実行した後、私はいつもと同じエラーを得た:
[[email protected] basket]# ./build_g++_step2
main.o: In function `basic_string<char, string_char_traits<char>, __default_alloc_template<true, 0> >::data(void) const':
/usr/lib/gcc-lib/i586-linux/2.95.4/../../../../include/g++-3/std/bastring.h:152: undefined reference to `QApplication::QApplication(int &, char **, int)'
/usr/lib/gcc-lib/i586-linux/2.95.4/../../../../include/g++-3/std/bastring.h:152: undefined reference to `QApplication::exec(void)'
/usr/lib/gcc-lib/i586-linux/2.95.4/../../../../include/g++-3/std/bastring.h:152: undefined reference to `QApplication::~QApplication(void)'
/usr/lib/gcc-lib/i586-linux/2.95.4/../../../../include/g++-3/std/bastring.h:152: undefined reference to `QApplication::~QApplication(void)'
collect2: ld returned 1 exit status
何を私に教えてください。逃した
Qtのバージョンが古くなっているのは興味深いと思います。まあ、それは私の選択ではありません。私の仕事で私は私の国の特別な支配団体によって承認されたので、このQtだけを使うことができました。 – FunnyHorse