Я пытался использовать SCIP в личном проекте. Мне удалось скомпилировать хорошо scipoptsuite-3.2.1 (даже если полученная папка находится в моей папке Download, потому что я неряшливый), но я не могу заставить ее работать.
Я работаю над 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, но … Это тоже не работает.
Я просто не знаю, что попробовать дальше, любая помощь будет оценена.
Спасибо
РЕДАКТИРОВАТЬ —
Теперь я переделал установку, используя флаги ZLIB = false, READLINE = false и ZIMPL = false. Я также использовал команду INSTALLDIR = «» для правильного размещения библиотек, заголовков и двоичных файлов в моей системе (для этого мне пришлось отредактировать Makefile, так как он изначально ссылался на ../thePath, с thePath = «/ usr / local «, например).
Тем не менее, это все еще не работает. То, что я считал бесконечным циклом, на самом деле является огромным количеством ошибок (более 13 000), которые кажутся неразрешенными вызовами каждой функции. (Сейчас я компилирую только с -lscip).
Что я могу сделать сейчас ?
К несчастью, libscip
неправильная библиотека для вашего приложения. Вы должны скорее использовать libscipopt
изнутри lib/
каталог пакета оптимизации SCIP (запустить make scipoptlib
).
libscip
содержит только чистый код SCIP и будет работать только вместе с
liblpi{spx,cpx,...}
иметь решатель LP libnlpi
иметь НЛП решательlibobjscip
для поддержки C ++libscipopt
предполагается объединить все эти библиотеки в одну для более легкого использования.
Других решений пока нет …