Я знаю, я выкопал весь интернет, чтобы узнать, в чем проблема, и пока ничего не было полезно.
Я нахожусь в Windows 7, используя:
Qt 4.8.3: http://releases.qt-project.org/qt4/source/qt-win-opensource-4.8.3-mingw.exe
MinGW32 4.4.0: ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip
Я разработал проект под названием QLC, но автор не дает мне поддержки для компиляции в Windows. Я выполнил его инструкции, но, я думаю, они устарели.
Я могу скомпилировать любой демонстрационный пример Qt с Qt Creator, поэтому я считаю, что моя система работает нормально.
При попытке скомпилировать программу я столкнулся с известной проблемой:
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 `[email protected]'
(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), но никто не работал.
Любая магия, пожалуйста?
Постскриптум Конечно, я могу построить на Linux i386/amd64
РЕШИТЬ:
Мне просто нужно было добавить следующую строку в .pro файлы, где были созданы библиотеки:
win32:QMAKE_LFLAGS += -shared