2013-04-10 10 views
12

Gibt es eine Möglichkeit, v110_xp toolset (anstelle von Standard "v110") beim Kompilieren mit "nmake" zu verwenden?VS2012 nmake mit v110_xp toolset?

Ich versuche, eine Qt5-Bibliothek für VisualStudio2012 zu kompilieren, und ich muss es auch auf Windows XP-Maschinen arbeiten. Ich habe es geschafft, alle Qt5-Bibliotheken mit VS2012 mit nmake zu kompilieren, aber selbst einfache Test-Anwendungen laufen nicht auf XP-Rechnern und geben mir die "Der Prozedur-Einstiegspunkt _except_handler4_common konnte nicht in der dynamischen Link-Bibliothek msvcrt.dll gefunden werden". (auf Windows 7 Maschinen meine Testanwendung normal arbeiten)

+0

Es ist etwas ernsthaft in Ihren Makefiles geborst, wenn Sie mit einer Abhängigkeit von msvcrt.dll enden. Die letzte Importbibliothek, die sie verwendet hat, ist vor 10 Jahren verschwunden. Sehr schwer zu erraten, wie das passieren könnte. –

+0

Hans Passant danke für einen Kommentar, aber (nur ein Beispiel) offizielle Qt's Qt5Core.dll hat eine Abhängigkeit für Ole32.dll, und es hat eine Abhängigkeit für msvcrt.dll. Dies kann deutlich mit der "Dependency Walker" -Software (http://www.dependencywalker.com/) gesehen werden. Wäre wirklich schön, etwas zu experimentieren und Qt mit "v110_xp" Toolset statt "v110" ... einfach zu kompilieren momentan bin ich mir nicht sicher, wie das geht und ob das überhaupt möglich ist ... – Gediminas

+0

Es ergibt immer noch keinen Sinn und v110_xp wird sicherlich keinen Unterschied machen. Die einzige Möglichkeit, wie qt5core.dll mit einer Abhängigkeit von msvcrt.dll enden könnte, ist, wenn es mit Mingw erstellt wurde. –

Antwort

5
  1. bearbeiten Makefile. Debug oder Makefile.Release Datei
  2. hinzufügen -D_USING_V110_SDK71_ DEFINIERT

Beispiel:

DEFINES = -D_USING_V110_SDK71_ -DUNICODE -DWIN32 -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG

Viel Glück!

2

Es ist einfacher, mkspecs \ win32-msvc2012 \ qmake.conf zu bearbeiten, bevor Sie configure ausführen. Bearbeiten Sie die DEFINES + = Zeile und fügen Sie den folgenden:

WIN32 _USING_V110_SDK71_ 

Sie müssen diese Änderung bunkern und Pop, wann immer Sie ziehen.

1

nmake /E CC="cl /D_USING_V110_SDK71_ /D_WIN32_WINNT=0x0501" /f Makefile.vc

Es ist viel einfacher, wenn es schwierig ist, die Make-Datei zu berühren.