1

私はこの最小限の例を持っています:

QT -= gui
CONFIG += qt console
SOURCES += main.cpp

#include <QDebug>

int main(int argc, char** argv)
{
    return 0;
}

これにより、プロジェクトのビルド時にこのリンクエラーが発生します。

c:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe:最終リンクに失敗しました:引数が無効です

linkコマンドは次のようになります。

g ++ -Wl -Wl -Wl、-subsystem、console -mthreads -o debug \ test.exe debug / main.o -L "c:\ QtSDK \ Desktop \ Qt \ 4.8.1 \ mingw \ lib" -lQtCored4

私のセットアップ:

  • Windows XP SP3
  • Qt SDKバージョン1.2.1(QtCreator 2.4.1、Qt Desktopバージョン4.8.1)(での新規インストールC:\QtSDK\
  • MinGW32バージョン4.4.0(Qt SDKに含まれていますC:\QtSDK\mingw\

を削除すると#include <QDebug>、正常にコンパイルされます。QCoreApplicationなどの他のQtヘッダーファイルをインクルードすると、それも正常にコンパイルされます。

編集:これは非常に奇妙な最小限の例です。上記のような空のメイン関数について考えてみます。これらのインクルードを入れると、リンクに失敗します。

#include <QWidget>
#include <QVariant>

しかし、そのうちの1つを削除すると、エラーなしでリンクします。

どうしたの?なぜmingwは無効な引数が何であるかを教えてくれないのですか?

4

1 に答える 1

0

リンカーがlQtCored4libを見つけられなかったのだろうか?それは実際には-Lディレクトリにありますか?

于 2012-08-06T09:30:18.950 に答える