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