10

問題が何であるかを知るためにインターネット全体を掘り下げましたが、これまでのところ何も役に立ちませんでした.

私はWindows 7を使用しています:

Qt 4.8.3: https://download.qt.io/archive/qt/4.8/4.8.3/qt-win-opensource-4.8.3-mingw.exe
MinGW32 4.4.0: http://nosymbolfound.blogspot.com/2012/12/since-until-now-qt-under-windows-is.html

Qt Creator を使用して Qt のデモ例をコンパイルできるので、私のシステムは問題なく動作していると思います。
プログラムをコンパイルしようとすると、よく知られた問題に遭遇しました。

g++ -enable-auto-import -o libqlcengine.a object_script.libqlcengine.Debug  -L".\lib" -L"c:\Qt\4.8.3\lib" -lwinmm -L../../hotplugmonitor/src -lhotplugmonitor -lQtScriptd4 -lQtXmld4 -lQtGuid4 -lQtCored4
c:/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16'

(object_script.libqlcengine.Debug は .o ファイルのかなり長いリストです)
ビルドのその時点で、静的な .a ライブラリをリンクしようとしているので、MinGW が WinMain を探す理由がわかりません。grep 'WinMain' を実行しましたが、ソース ツリー全体で結果が見つかりませんでした。

元のソースをチェックアウトする場合:

svn co https://qlc.svn.sourceforge.net/svnroot/qlc qlc

または私の分岐バージョン:

git clone git://git.code.sf.net/p/qlcplus/code qlcplus-code

それらは同じ結果になります。
みんな、私はここで何が欠けていますか? たくさんの C フラグ (-mwindows -lmingw32 -DQT_NEEDS_MAIN -lqtmain) を試しましたが、どれも機能しませんでした。

魔法をお願いします。

PSもちろん、i386/amd64のいずれかでLinuxでビルドできます

解決済み:

ライブラリが作成された .pro ファイルに次の行を追加する必要がありました。

win32:QMAKE_LFLAGS += -shared
4

1 に答える 1

5

[解決済み]

ライブラリが作成された.proファイルに次の行を追加する必要があることがわかりました。

win32:QMAKE_LFLAGS += -shared
于 2013-01-30T21:57:35.763 に答える