2016-05-12 12 views
1

Ich verwende cygwin, um SCIP unter Windows auszuführen. Allerdings, wenn ich make verwenden, um die Installation auszuführen, berichtet Cygwincygwin: "fmemopen" wurde in diesem Bereich nicht deklariert

"fmemopen" was not declared in this scope

tmpStream = fmemopen(tmpString, 63, "w");

denke ich, das Problem entstand, als ich versuchte Pakete für ZLIB innerhalb der Cygwin-Paket-Manager zu installieren, aber ich bin nicht sicher, wie ich damit umgehen kann Error?

+0

Wie lautet die vollständige Befehlszeile an gcc? fmemopen ist in 'stdio.h' durch' __POSIX_VISIBLE> = 200809' geschützt. Siehe '/ usr/include/sys/features.h' für Details. – matzeri

Antwort

0

Offenbar sind die Flags _WIN32 oder _WIN64 aus irgendeinem Grund nicht gesetzt, wenn Sie cygwin verwenden. Sie können dies tun manuell das entsprechende Untermakefiles make.cygwin.x86.gnu oder make.cygwin.x86_64.gnu in soplex-2.2.1/make/ wird Einstellung:

einfach hinzuzufügen -D_WIN32 oder -D_WIN64 jeweils in der ersten Zeile, die Parameter CPPFLAGS erstreckt.

Sie können auch versuchen, ohne die rationalen Lösungsmöglichkeiten von SoPlex zu kompilieren, indem Sie make LEGACY=true ausführen.

+0

Ich habe nicht ganz verstanden, was ich tun soll. Ich habe die in soplex-2.2.1./make/ genannten Dateien gefunden. Wie kann ich die genannten Begriffe hinzufügen? –

+0

Sie bearbeiten die Datei wie folgt: 'CPPFLAGS + = -m32 -D_WIN32' – mattmilten

+0

Ich habe die erste Zeile von make.cygwin.x86_64.gnu in" CPPFLAGS \t + = \t -m64 -D WIN64 LDFLAGS "bearbeitet. Cygwin sagt nun jedoch einen Fehler: Die Regel für das Ziel "scipbinary" ist fehlgeschlagen. –