我从同事那就是与该公司不再继承了旧程序。 这是我们使用CPLEX优化。 它始建于房子在C ++中使用Visual Studio 2005和CPLEX121。 它位于哪里的服务器正在被取消,我们正在努力将其迁移到新的服务器。 我试图重建在Visual Studio 2013采用CPLEX126为优化新的应用程序。
错误我得到的是:
描述:
错误LNK2038:对于“_MSC_VER”检测不匹配:值“1600”的(项目名称)不匹配值“1800”的obj
文件:
ilocplex.lib(ilocplex.obj)
有相当多的这些不匹配的。 我是新来的Visual Studio和C ++,但我设法通过得到CPLEX链接更新,现在这个错误是发生在工作。
从这个论坛的帖子: 错误LNK2038:对于“_MSC_VER”检测不匹配:值“1600”不匹配CppFile1.obj值“1700”
我已经能够推断有可能是我能够做到的工具集或“重新编译我的图书馆”这似乎对某些人在帖子的最后工作,但我所需要的究竟是如何做到这一点更具体的帮助。
不,它的目标文件。 编译器发出什么。 他们似乎是的.lib文件中。 你需要重新编译。 - 大卫·赫弗南10月24日在'13 20:40
嗨大卫,IAM新的C ++ .Iam基本上AC#programmmer。 能否请您阐述意见 - user1654136 10月24日在'13 2 20:43
编译器告诉你重新编译Projectname1.lib与VS2012。 - 大卫·赫弗南10月24日在'13 20:48
我不知道这意味着什么,我没有足够的信誉发表评论。
也,
在解决方案中每个项目确保属性>配置。 属性>常规>平台工具箱是一个为所有这些,对于V100的Visual Studio 2010,V110为Visual Studio 2012,你还可以在V100是工作在Visual Studio 2012
反应是“这为我工作”
我的项目的平台工具集 “的Visual Studio 2013(V120)”。 我需要添加一些其他的工具集? 有下拉没有其他选择。
还有的在.cpp文件中的代码块:
// set up Visual Studio version #define _VS2005_ # if _MSC_VER < 1400 # undef _VS2005_ # endif
我也不知道这是什么做的,看它是否导致该错误。
首先-你将无法重新编译CPLEX库,因为你不会有源代码,也没有办法,你要去,除非你在里面IBM的R&d团队合作,得到它。 所以忘了推理。 你是依赖于IBM提供与您所使用的编译器版本的使用预建图书馆。
当你说你“设法通过得到CPLEX链接更新,现在这个错误是发生在工作”,我猜测你设法更新的路径在C ++包括由编译器使用的文件,所以你的编译错误已经消失。 但是,你可能还没有更新的库路径,以显示编译器库与链接的权集。
从错误您发布的内容,“_MSC_VER”:值“1600”不匹配值“1800”,对我说,你正试图与VS2010内置的CPLEX库进行链接,而你的代码是用VS2013编译。 见例如如何检测,如果我编译代码与Visual Studio 2008?
如果你是新的C ++,它是纯疯狂的人期待你走进一个大现有的代码库,并尝试移植到新的编译器和库,并得到它马上没有做更多的研究和背景学习运行。 你试图建立和运行提供了CPLEX C ++的例子吗?
您已经阅读设置了CPLEX一个C ++项目的说明? 他们是在CPLEX文件夹中的文件c_cpp.html。
现在,我不知道有CPLEX库VS2013。 我还没有得到12.6在这里,所以我不能肯定。 在已安装CPLEX,大概就像拷贝一起来看看:
C:\ Program Files文件\ IBM \ ILOG \ CPLEX_Studio126 \ CPLEX \ LIB
...这应该告诉你所支持的VS版本。 我有x64_windows_vs2008,x64_windows_vs2010和x64_windows_vs2012
如果没有对VS2013库的副本,那么我认为你将不得不回到VS2012或VS2010。 有可能是配置VS2013,使其工作像VS2012和诱骗到生成的代码兼容的方式; 但我猜测,不会是从IBM的角度来看,“支持的配置”。
约的#define VS2005的东西是使用C ++预处理器以定义可用于开启或关闭的源代码比特的符号。 寻找凡在你的源代码符号被使用。 我猜那是从你的连接问题完全分开。 如果您在您的代码更改,使其工作(或更好的工作)与编译器和库的新版本可能会选择做类似的事情。
蒂姆的回答是完全正确的,但在这里,他无法确认件...
不存在CPLEX库VS2013,所以你不应该花时间找一些...这可以看出这个报告 ,你可以访问从其他平台/版本CPLEX优化工作室详细的系统需求 。
这意味着,你将不得不使用Visual Studio 2012编译器。 您仍然可以使用Visual Studio 2013环境:你所要做的就是安装两个版本,并指示的Visual Studio 2013通过改变平台工具,以使用从2012年版的编译器。 但是,所有应用程序使用,必须再是由在Visual Studio 2012编译器编译其他库。 你不能混搭...