Statisch verknüpfte, korrekt funktionierende readline-Bibliothek unter Windows?

8

Wir entwickeln ein C ++ - Softwarepaket, das von der GNU readline-Bibliothek abhängt, und wir bauen normalerweise mit gcc (mindestens ab Version 4). Nun möchten wir dies in Windows portieren, um eine statisch verknüpfte Version zu erhalten, die wir neu verteilen können, ohne dass eine Kompilierung durch Benutzer erforderlich ist.

Ich habe mehrere Ansätze ausprobiert:

  • Erstellen mit Cygwin (nicht mit der bereitgestellten Readline kombiniert mit -mno-cygwin oder einem Mingw-Compiler),
  • Erstellen mit mingw und readline von GnuWin32 (ungelöste Abhängigkeiten zu stat64, die ich nicht auflösen konnte),
  • Bauen mit Mingw und Erstellen von Readline und erforderlichen pdcurses von der Quelle (vielversprechendste Ansatz, zu einer statischen binären! Aber die erhaltene interaktive Shell verhielt sich falsch, zum Beispiel Backspace wurde nicht visualisiert).

Irgendwelche Ideen, wie wir einen der Ansätze zur Arbeit bekommen könnten?

Danke! Broes

    
Broes De Cat 19.01.2011, 15:27
quelle

3 Antworten

4

Nach ähnlichen Frustrationen habe ich gerade eine 32bit und 64bit Version von libreadline 6.2 mit MinGW-w64 kompiliert. Hier ist meine Art, wie ich es gemacht habe:

Layout meines Verzeichnisses dev :

%Vor%

Legen Sie einige Umgebungsvariablen für den 32-Bit-Build fest:

%Vor%

termcap 1.3.1.
Führen Sie das Konfigurationsskript aus:

%Vor%

Bearbeiten Sie termcap.c und korrigieren Sie einige Zeilen oben. Meins sieht so aus:

%Vor%

und tparam.c

%Vor%

Ändern Sie das Makefile:

%Vor%

Nach diesem Aufruf make install sollte es ohne Warnungen oder Fehler kompilieren.

readline 6.2
Setzen Sie dieselben CPPFLAGS- und LDFLAGS-Variablen wie bei termcap, bevor Sie aufrufen:

%Vor%

Bearbeiten Sie das Makefile:

%Vor%

make install sollte jetzt readline kompilieren und installieren!
Wenn Sie eine 64-Bit-Bibliothek wünschen, ersetzen Sie i686-w64-mingw32 durch * x86_64-w64-mingw32 * und local32 durch local64 .

    
x-x 14.03.2011, 07:55
quelle
2

Sehen Sie sich die MinGWEditLine-Bibliothek

an
  

Eine EditLine-API-Implementierung für die native Windows-Konsole. Diese BSD-lizensierte Bibliothek bietet Befehlszeilen-Editier- und Historienfunktionen, die denen in GNU Readline ähneln.

Die wichtigsten Readline-Funktionen sind für die native Windows-Konsole implementiert. BSD-Lizenz.

    
user704865 12.04.2011 20:46
quelle
0

gnuwin32 hat einen Port von readline: Ссылка

Für Nicht-GPL-Projekte hat libedit eine akzeptablere Lizenzierung [verwendet BSD-Lizenzierung]

    
Foo Bah 10.02.2011 13:58
quelle

Tags und Links