私はこの最小限の例を持っています:
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は無効な引数が何であるかを教えてくれないのですか?