2016-09-05 20 views
0

私はSCIPを個人プロジェクトで使用しようとしています。私はscipoptsuite-3.2.1をコンパイルすることができました(結果的にフォルダがダウンロードフォルダに入っていても、私は大丈夫です)。しかし、動作させることはできません。SCIPを既存のプロジェクトにリンクする

私はEclipse CDTで作業していますが、ヘッダーをうまくリンクすることはできますが、関数は認識されていますが、あちこちに未定義の参照があります。私はSCIPのライブラリ(libscip.a)をリンクしようとするが、私は次のエラーを持っている:

/usr/bin/ld: /home/myusername/Downloads/scipoptsuite-3.2.1/scip-3.2.1/lib/libscip.a(fileio.o): undefined reference to symbol 'gzdopen' 
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 
make: *** [Segmentation_2D] Error 1 

はそれを解決するために、私は、コマンド-lzを追加しましたが...それはどちらか動作しません。私のようなリンクする場合

  • は:-lscip -lz - >コンパイルが無限ループに行くを開始
  • 私は、次のようなリンクする場合:-lz -lscip - 私のようなリンクする場合> DOS
  • を逃します:-lz -lscip -lz - >コンパイルが無限ループに入っていきます。

私は次に何を試していいのか分かりません。

おかげ

EDIT -

私は今のフラグZLIB = falseを、READLINE =偽とZIMPL =偽を使用してインストールをやり直しています。私はまた、INSTALLDIR = ""というコマンドを使って、自分のシステムにライブラリ、ヘッダ、バイナリを正しく置くことができました。(元々は../thePath、thePath = "/ usr/local" "、 例えば)。

ただし、まだ動作しません。私が無限ループと思っていたのは、実際にはすべての機能の未解決の呼び出しであるように見える膨大な数のエラー(13.000+)です。 (私は-lscipでコンパイルするだけです)。

ここで何ができますか?

答えて

0

残念ながら、libscipは、ご使用のアプリケーションに適したライブラリではありません。 SCIP最適化スイートのlib/ディレクトリ(実行make scipoptlib)からlibscipoptを使用する必要があります。

libscipは唯一の純粋なSCIPコードが含まれており、唯一のNLPを持っているLPソルバー

  • libnlpiを持っている

    • liblpi{spx,cpx,...}と一緒に動作しますソルバー
    • libobjscip C++サポートのための

    libscipoptは、これらのライブラリを1つにまとめて、使いやすくしています。