Как собрать и запустить Solver Concorde TSP

0

Я делаю код в C++, который shoudl использует библиотеку, которая называется Concorde для решения хорошо известной проблемы, называемой Traveling Salesman Problem. Эта библиотека доступна здесь

Я составитель первой запущенной ./configure --with-cplex=<CPLEX_DIR>, а затем make в результате двух основных файлов concorde.a и concorde.h. Таким образом, concorde настроен для запуска и использования IBM Cplex в качестве точного решателя.

Я использую Code :: Blocks как IDE, а в вариантах сборки я добавил библиотеку (concorde.a) в Link libraries и включил заголовок в свой код.

Однако, когда я пытаюсь скомпилировать свой код, он дает мне и ошибку, указывающую, что он не может найти реализацию функций concorde, которые я вызываю и которые определены в файле concorde.h. В этом случае ошибка является "undefined reference to <function>".

Может ли кто-нибудь помочь мне в этом?

Последняя часть журнала сборки кодовых блоков:

    g++ -L/opt/ibm/ILOG/CPLEX_Studio1251/cplex/lib/x86-64_sles10_4.1/static_pic 
    -L/opt/ibm/ILOG/CPLEX_Studio1251/concert/lib/x86-64_sles10_4.1/static_pic 
    -L/opt/concorde  -o bin/Debug/SVRPDSP obj/Debug/instance.o obj/Debug/lib/combo.o 
    obj/Debug/lib/IncumbentCallback2C.o obj/Debug/lib/lazyCallback2C.o 
    obj/Debug/lib/lazyCallbackGLS.o obj/Debug/lib/lib_algorithms.o 
    obj/Debug/lib/lib_general.o obj/Debug/solution.o   -lrt  -lilocplex -lcplex 
    -lconcert -lm -lpthread    /opt/concorde/concorde.a 

ps: Я собираюсь на Ubuntu 13.10

Благодарю.

  • 0
    Code :: Blocks должен выдавать то, что он использует в качестве команды ссылки, что он пытается сделать?
  • 0
    @Collin Я редактировал выше с последней частью журнала сборки. Как вы можете видеть, добавляется библиотека concorde, поэтому я не знаю, почему она не может найти реализации.
Теги:
compiler-construction
codeblocks
cplex

1 ответ

0

Прежде всего: Concorde не поддерживает CPLEX 12.5.
Я загрузил QSopt и запустил ./configure --with-qsopt=QSOPT_DIR.
Наконец, порядок libs следующий:

-lilocplex -lconcert -lcplex /opt/concorde/concorde.a /opt/QS/qsopt.a -lm -lpthread

Ещё вопросы

Сообщество Overcoder
Наверх
Меню