Linker nie używa domyślnej biblioteki środowiska wykonawczego podczas łączenia tylko bibliotek (bez obiektów)

Chcę, aby użytkownicy mogli ponownie połączyć moją aplikację używającą Qt z własną kompilacją Qt, bez konieczności przebudowywania wszystkich źródeł. Może to zostać wykorzystane na przykład w celu zapewnienia zgodności z LGPL. Aby to zrobić, muszę dostarczyć pliki obiektów dla wszystkich moich źródeł. Aby ułatwić, używając qmake, podzieliłem projekt wewnętrznie na:

A statyczny projekt biblioteki który zawiera obiekty dla wszystkich plików źródłowych, w tym plik, który maint main(int, char**).

Naprojekt aplikacyjny który łączy powyższą bibliotekę statyczną z Qt. Qt może być biblioteką statyczną lub dynamiczną. Brak plików źródłowych dla tego projektu.

Następnie dystrybuuję statyczną bibliotekę (.lib) i bibliotekęplik projektu aplikacji aby każdy mógł ponownie połączyć aplikację z własną wersją Qt, niezależnie od tego, jaką preferują wersję (albo statycznie połączony Qt, albo dynamicznie połączony Qt), o ile mają niezbędną wersję MSVC.

Robię kompilację w obu MSVC 2008 (Qt 4) i 2012 (Qt 5). Pliki makefile są generowane przez qmake.

Problem polega na tym, że linkowanie kończy się niepowodzeniem podczas budowaniaprojekt aplikacyjny.

LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup

Jak tylko dodam fałszywy plik źródłowydummy.cpp doprojekt aplikacyjny, linkowanie powiedzie się. Czy można uniknąć tego obejścia?

//dummy.cpp (this is the entire source)
int dummy;

questionAnswers(1)

yourAnswerToTheQuestion