2016-05-12 29 views
1

WindowsでSCIPを実行するのにcygwinを使用しています。しかし、私はインストールを実行するためにmakeを使用する場合、Cygwinはcygwin:このスコープで "fmemopen"が宣言されていません

"fmemopen" was not declared in this scope

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

を報告し、私はcygwinのパッケージマネージャ内ZLIBのためのパッケージをインストールしようとしたときに問題がarisedと思いますが、私はそれを扱うことができるかわかりませんエラー?

+0

gccに渡される完全なコマンドラインは何ですか? fmemopenは、 'stdio.h'で' __POSIX_VISIBLE> = 200809'で保護されています。詳細は/ usr/include/sys/features.h'を参照してください。 – matzeri

答えて

0

明らかに、何らかの理由でcygwinを使用しているときにフラグ_WIN32または_WIN64が設定されていません。

単にCPPFLAGSパラメータを拡張し、最初の行には、それぞれ、-D_WIN32または-D_WIN64を追加:手動でsoplex-2.2.1/make/に対応したサブのmakefile make.cygwin.x86.gnuまたはmake.cygwin.x86_64.gnuを調整することがそれを行うことができます。

make LEGACY=trueを実行して、SoPlexの合理的な解決機能を使用せずにコンパイルを試みることもできます。

+0

私は何をすべきかを完全には知りませんでした。 soplex-2.2.1./make/に記載されているファイルが見つかりました。上記の条件を追加するにはどうすればよいですか? –

+0

このようにファイルを編集します: 'CPPFLAGS + = -m32 -D_WIN32' – mattmilten

+0

make.cygwin.x86_64.gnuの最初の行を" CPPFLAGS \t + = \t -m64 -D_WIN64 LDFLAGS "に編集しました。しかしcygwinは今、エラーを言っています:ターゲット "scipbinary"のルールは失敗しました。 –

関連する問題