【发布时间】:2018-09-04 11:28:21
【问题描述】:
我使用 CPLEX 12.8 和 c++ 编写弯曲分解算法。当我使用 clang++ 编译器时没有错误。但是,当我使用 g++ 时,会出现以下错误:
在包含的文件中 /opt/ibm/ILOG/CPLEX_Studio128/cplex/include/ilcplex/ilocplexi.h:1053:0, 来自 /opt/ibm/ILOG/CPLEX_Studio128/cplex/include/ilcplex/ilocplex.h:29,
来自 PARAM.h:12, 从 MAIN.cpp:1:/opt/ibm/ILOG/CPLEX_Studio128/cplex/include/ilcplex/iloparam.h:83:12: 警告:不推荐使用“IloCplex::Param::MIP::Limits::SubMIPNodeLim” [-Wdeprecated-declarations] 结构限制 { ^ /opt/ibm/ILOG/CPLEX_Studio128/cplex/include/ilcplex/iloparam.h:103:40: 注意:在这里声明 静态常量 IloCplex::LongParam SubMIPNodeLim = LongParam(CPX_PARAM_SUBM
我没有在我的代码中使用SubMIPNodeLim,所以我不明白为什么我会收到这个警告。虽然 g++ 会产生这种警告,但它也会编译代码,我可以看到结果。但是,当我使用 gcc 时,它不会显示任何结果并以一长串错误终止。你能告诉我这里有什么问题吗?
【问题讨论】:
-
您所拥有的不是错误,而是警告。而且您可能正在使用一些功能,而这些功能又使用了已弃用的功能。
-
@MikeKinghan
gcc和g++程序之间的唯一区别是添加到包含和库搜索路径的默认目录以及gcc不与C++ 库链接。否则,两者都执行相同的“后端”程序。clang与clang++相同。 -
@Someprogrammerdude 我知道。当我读到它时,我认为这实际上是一个单独的问题,他/她指的是未定义的参考链接错误。
-
@MikeKinghan:问题中甚至没有提到未定义的引用。你不在基地。
-
@LightnessRacesinOrbit 确实不是。我认为 OP 没有很好地区分 g++ build 的问题和 gcc build 的问题,并且没有为后者提供诊断。然而,不想争论折腾。评论已删除。