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 当然我可以在 Linux 上构建 i386/amd64

解决了:

我只需将以下行添加到创建库的 .pro 文件中:

win32:QMAKE_LFLAGS += -shared
4

1 回答 1

5

[已解决]

我刚刚发现我需要将以下行添加到创建库的 .pro 文件中:

win32:QMAKE_LFLAGS += -shared
于 2013-01-30T21:57:35.763 回答