Прошу прощения, если это не то сообщество, о котором можно задавать такие вопросы, в таком случае, пожалуйста, скажите мне, какое именно. Я пробовал несколько форумов IBM, но получаю (общую?) Ошибку, когда пытаюсь начать там обсуждение. У меня неплохой опыт работы с CPLEX (на Windows, с Visual Studio c ++), но когда я пытаюсь скомпилировать следующую простую пустую модель с g ++ на Ubuntu, я получаю сообщение об ошибке. Код, над которым я работаю, таков: ModelFlow. cpp:
#include <lsndp_heuristic/ModelFlow.h>
ModelFlow::ModelFlow(HeurGraph graph, Instance::ptr instance)
: graph(graph), instance(instance), env(), model(env), cplex(model)
{
}
ModelFlow.h:
class ModelFlow
{
private:
IloEnv env;
IloModel model;
IloCplex cplex;
HeurGraph graph;
Instance::ptr instance;
public:
ModelFlow(HeurGraph graph, Instance::ptr Instance);
ModelFlow() = default;
~ModelFlow() = default;
};
Вывод с сообщением об ошибке при запуске "make" это ("формат" мной):
g++ -g -std=c++17 -D IL_STD
-I LinerNetworks/src
-I /usr/include/boost
-I /opt/ibm/ILOG/CPLEX_Studio1210/concert/include
-I /opt/ibm/ILOG/CPLEX_Studio1210/cplex/include
-L /opt/ibm/ILOG/CPLEX_Studio1210/concert/lib/x86-64_linux/static_pic
-L /opt/ibm/ILOG/CPLEX_Studio1210/cplex/lib/x86-64_linux/static_pic
LinerNetworks/obj/shared/SailingLeg.o
LinerNetworks/obj/shared/Ship.o
LinerNetworks/obj/shared/Port.o
LinerNetworks/obj/shared/ShipRoute.o
LinerNetworks/obj/shared/Instance.o
LinerNetworks/obj/new_liner_networks/graph/Arc.o
LinerNetworks/obj/new_liner_networks/graph/Node.o
LinerNetworks/obj/new_liner_networks/graph/GraphFactory.o
LinerNetworks/obj/lsndp_heuristic/FlowAlgorithm.o
LinerNetworks/obj/lsndp_heuristic/Main.o
LinerNetworks/obj/lsndp_heuristic/MoveShip.o
LinerNetworks/obj/lsndp_heuristic/AddPort.o
LinerNetworks/obj/lsndp_heuristic/Neighborhood.o
LinerNetworks/obj/lsndp_heuristic/RemovePort.o
LinerNetworks/obj/lsndp_heuristic/ModelFlow.o
LinerNetworks/obj/lsndp_heuristic/Misc.o
LinerNetworks/obj/lsndp_heuristic/Solution.o
LinerNetworks/obj/lsndp_heuristic/graph/ArcHeur.o
LinerNetworks/obj/lsndp_heuristic/graph/NodeHeur.o
LinerNetworks/obj/lsndp_heuristic/graph/GraphFactoryHeur.o
-o heuristic
/usr/bin/ld: LinerNetworks/obj/lsndp_heuristic/ModelFlow.o: in function `ModelFlow::ModelFlow(boost::adjacency_list<boost::vecS, boost::listS, boost::bidirectionalS, VertexProperty, EdgeProperty, boost::no_property, boost::listS>, std::shared_ptr<Instance>)':
/home/nemanja/Projects/phd/lsndp_heuristic/LinerNetworks/src/lsndp_heuristic/ModelFlow.cpp:4: undefined reference to `IloEnv::IloEnv()'
/usr/bin/ld: /home/nemanja/Projects/phd/lsndp_heuristic/LinerNetworks/src/lsndp_heuristic/ModelFlow.cpp:4: undefined reference to `IloModel::IloModel(IloEnv, char const*)'
/usr/bin/ld: /home/nemanja/Projects/phd/lsndp_heuristic/LinerNetworks/src/lsndp_heuristic/ModelFlow.cpp:4: undefined reference to `IloCplex::IloCplex(IloModel)'
collect2: error: ld returned 1 exit status
make: *** [makefile:26: all] Error 1
Я проверил папки /opt/.../concert/include и /opt/.../cplex/include, и они действительно содержат файлы iloenv .h, ilocplex.h, ilocplexi.h и ilomodel.h. Именно по этой причине я понятия не имею, что делаю не так. Если мне нужно предоставить дополнительную информацию, дайте мне знать. Заранее извиняюсь за любые проблемы для новичков в этом посте, это мой первый пост. Пусть вас пропустит Covid-19.