Was ist der beste Weg zum Erstellen von Open-Source-Bibliotheken DLLs für Windows-Entwickler zu verwenden?

8

Ich habe mehrere C freie Software / Open-Source-Bibliotheken, die ich unter Linux und OSX mit der GNU-Toolchain (automake, conf, flex, bison, gcc, ...) entwickle, bekomme aber gelegentlich Anfragen zur Bereitstellung von Windows-DLLs. Ich würde gerne in der Lage sein, diese bereitzustellen, ohne viel Zeit und Geld mit Windows Visual Studio-Entwicklung verbringen zu müssen. Ich habe eine virtuelle Windows XP-Maschine zur Verfügung und ich weiß auch, dass die Software portierbar ist, da ich gelegentlich Patches bekomme, um es in Windows einzubauen.

Welche Ansätze oder Werkzeuge sollte ich verwenden? Cross-Compiling unter Linux? Verwenden von Visual Studio Express oder etwas anderes? Ich würde etwas bevorzugen, das aus einem SVN-Repository vollständig automatisiert ist. Ich zähle Cygwin nicht als eine Lösung, da das nicht zu liefern scheint, was Windows-Entwickler benötigen, soweit ich die Probleme verstehe - Verlinkung und DLLs.

    
dajobe 12.06.2009, 17:01
quelle

4 Antworten

5

Sie können Mingw mit MSYS, Visual Studio (Express) mit SUA (Subsystem für Unix-Anwendungen) oder Cygwin versuchen, Programme zu kompilieren, die automake / autoconf-basiert sind (./configure & amp; make zum Erstellen unter Linux).

Leider ist die von ihnen erstellte lib-Datei normalerweise nicht mit anderen Compilern kompatibel. Wenn Sie also Ihre Bibliothek mit einer Anwendung verwenden möchten, die mit Visual Studio entwickelt wurde, sollten Sie den VSC ++ -Ansatz verwenden. Normalerweise haben viele GNU-Projekte (siehe gnuwin32 ) auch VC-kompatible Build-Skripte, die mit "nmake" kompiliert werden können >     

SztupY 12.06.2009, 17:15
quelle
2

Sie können MinGW verwenden oder die MSVC-Befehlszeilenwerkzeuge von Visual Studio Express .

Beide können von Befehlszeilenskripten gesteuert werden.

Ich könnte mir vorstellen, dass eine Kreuzkompilierung von Linux auch funktionieren würde, aber ich habe keine Ahnung, wie einfach (oder schmerzhaft) das sein könnte.

Dieser kurze Artikel zeigt eine einfache Kreuzkompilierung einer Windows-Anwendung & amp; Diese App unter Wine ausführen:

Michael Burr 12.06.2009 17:04
quelle
1

Das Windows Software Development Kit enthält den Microsoft C / C ++ - Compiler (Befehlszeile nur ohne visuelle Tools), so dass Sie nicht einmal Visual C ++ Express Edition benötigen. Das Windows SDK ist ein kostenloser Download von Microsoft.

    
Jay Michaud 12.06.2009 17:20
quelle
1

Wenn Sie Ссылка verwenden, kann cmake das Makefile (für Unix) und die Projektdatei (für Visual Studio) erstellen. Dies ist zum Beispiel das KDE-Projekt.

Der Compiler von Visual Studio kann über eine Windows-Befehlszeile mit 'devenv / build debug project.csproj' in der cmake-generierten Datei gestartet werden. Dies erfordert jedoch ein Windows (möglicherweise in einer VM) mit einem (möglicherweise kostenlosen) Visual Studio installiert.

    
Rutger Nijlunsing 12.06.2009 17:28
quelle