Установка Concorde: для использования этой функции необходимо подключить lp solver

Я пытался установить TSP Solver Concorde на Cygwin, но я столкнулся с некоторыми трудностями:
Я скачал Qsopt на официальном сайте, два файла в части «Cygwin» и поместил их в / home / qs. Затем я загружаю concorde, разархивирую его, разархивирую, так что у меня есть / home / concorde. Я захожу в эту папку и набираю «./configure —with-qsopt = / home / qs». Кажется, все идет хорошо, поэтому я набираю «make», и вот что у меня получилось (несколько строк вроде этого):

/home/concorde/LP/lpqsopt.c:645 : undefined reference « QSget_param »
/home/concorde/LP/lpqsopt.c:674 : undefined reference « QSset_param »
/home/concorde/LP/lpqsopt.c:650 : undefined reference « QSset_param »
/home/concorde/LP/lpqsopt.c:655 : undefined reference « QSopt_dual »

У вас есть идея, как это решить? Я не нашел ничего в Интернете.
(У меня есть автомат 1.15)

Команда, которая производит эту ошибку, кажется:

gcc -fPIC -O2 -g  -o concorde concorde.o tsp.a ../PQ/pq.a ../VERIFY/verify.a ../LOCALCUT/localcut.a   ../TINY/tiny.a ../LINKERN/linkern.a   ../EDGEGEN/edgegen.a ../KDTREE/kdtree.a     ../FMATCH/fmatch.a ../UTIL/util.a ../BIGGUY/bigguy.a     ../CUT/cut.a ../HELDKARP/heldkarp.a ../LP/lp.a ../COMBS/combs.a /home/qs/qsopt.a -liberty -lm ../LP/lp.a(lpqsopt.o)

И тогда, как вы видите, ошибки, похоже, приходят от LP

Большое спасибо,
Djazouli

0

Решение

Итак, я нашел исходный код, и похоже, что проблема в TSP / Makefile.in.

Проблема в том, что параметры передаются редактору ссылок (ld) являются позиционными: объектные файлы (и удобные статические архивы) должны находиться перед библиотеками, на которые они ссылаются.

В этом случае есть второй случай ../LP/lp.a(lpqsopt.o) быть переданным в конце, и ничего не дано связать против. Я не уверен, откуда это идет, хотя. Система сборки довольно сложна, чтобы выяснить, откуда возникла ошибка.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]