2016-09-05 6 views
0

Я пытался использовать SCIP в личном проекте. Мне удалось скомпилировать scipoptsuite-3.2.1 fine (даже если результирующая папка находится в папке «Загрузка», потому что я слякоть), но я не могу заставить ее работать.Ссылка на SCIP на существующий проект

Я работаю над CDT Eclipse, я мог бы просто комбинировать заголовки, функции распознаются, но у меня есть неопределенные ссылки по всему месту. Когда я пытаюсь связать библиотеку СКИП (в 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 = ложь, Readline = ложь и ZIMPL = ложь. Я также использовал команду INSTALLDIR = "" для правильного размещения библиотек, заголовков и двоичных файлов в моей системе (мне пришлось отредактировать Makefile, чтобы сделать это, поскольку он первоначально ссылался на ./thePath, с thePath = "/ usr/local ", например).

Однако все еще не работает. То, что я считал бесконечным циклом, на самом деле представляет собой огромное количество ошибок (13.000+), которые кажутся неразрешенными для каждой функции. (Я только компилирую с -lscip сейчас).

Что теперь делать?

ответ

0

К сожалению, libscip это не точная библиотека для вашего приложения. Вы должны использовать libscipopt из каталога lib/ пакета оптимизации SCIP (запустите make scipoptlib).

libscip содержит только чистый код СКИП и будет работать только вместе с

  • liblpi{spx,cpx,...} иметь LP решатель
  • libnlpi иметь NLP решатель
  • libobjscip для C++ поддержка

libscipopt должен объединить все эти библиотеки в один для удобства использования.

Смежные вопросы