我正在尝试扩展我对约束编程的了解,我想在VS2015中使用google的or-tools构建一个简单的示例。
但是我经常被这些链接器错误所困扰。 LNK2019和LNK2001。为什么VS中的链接很难。
Google的or-tools位于一个完美的文件夹中,包含一个包含子文件夹和lib子文件夹以及一个.lib文件。
我添加了附加库依赖项。
Configuration Properties -> Linker -> General Additional Library Dependencies : C:\PATH\or-tools.VisualStudio2013-64b\lib
在“链接器属性”部分下设置“输入”。
Configuration Properties -> Linker -> Input Additional Dependencies : ortools.lib
包含目录的Infomed VC ++。
Configuration Properties -> VC++ Directories : C:\PATH\or-tools.VisualStudio2013-64b
但是,在构建解决方案时仍然会抛出链接错误。我在这里错过了什么。
提前致谢。
修改
拼写
答案 0 :(得分:2)
由于VS2013和VS2015编译器版本不兼容,因此您必须build the lib from source。虽然要注意这可能需要在与VS2015链接时多做一些工作。具体来说,我必须手动解决以下问题:
protobuf-3.0.0-beta-1
更改为protobuf-3.0.0-beta-2
(奖金。不是必需的)snprintf
周围的名称冲突而无法编译。要解决此问题,请从GitHub下载最新的gflags版本并覆盖%OR_TOOLS%\dependencies
dependencies\sources\cbc-2.9.7
中查找所有VS解决方案文件(.sln)并转换为VS2015格式,只需双击它们并按照说明操作即可。 makefiles\Makefile.port
ifeq ("$(VisualStudioVersion)", "14.0")
VISUAL_STUDIO=2015
VS_RELEASE=v140
VS_COMTOOLS=140
else
...
endif
Visual Studio 12 2013
替换为Visual Studio 14 2015
每一步后重新运行make third_party
。
或者您只能download在Windows 10 x64 VS2015更新1上链接的最终结果。运行make third_party && make cc
后,我已将整个文件夹包含在内。