首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将旧的NuGet包与现代Visual Studio工具集一起使用

将旧的NuGet包与现代Visual Studio工具集一起使用
EN

Stack Overflow用户
提问于 2017-01-10 20:14:41
回答 2查看 471关注 0票数 0

在我的VS 2017 RC (它有Platform Toolset v.141)项目中,我特别添加了两个包- GLEW和GLFW。我成功地包含了相应的头文件,但无法链接我的项目--很明显,这些包不是为VS 2017构建的。

packages/<package>/build/native/lib中有几个v###子文件夹:v100, v110用于GLEW,v100, v110, v120, v140用于GLFW。如果我将项目的平台工具集从v141更改为v140 (我也安装了VS2015),GLFW链接错误会消失(因为VS从GLFW包中创建相应的二进制文件),但GLEW仍然没有链接-我既没有v110工具集,也不想在那里降级。

有没有办法将旧的NuGet C++包链接到使用现代平台工具集的项目?如果可能的话,我可以从源代码构建包--只要它是一个能自动管理到某个点的nuget包。

EN

回答 2

Stack Overflow用户

发布于 2017-01-11 16:25:58

我们无法将较旧的NuGet C++包链接到使用现代平台工具集的项目。

Visual Studio支持多个平台工具集,但现代平台工具集不向后兼容。因此,在VS 2015中使用平台工具集v140时,GLEW的v100,v110将生成链接错误。

在Visual Studio2015中使用v100,v110 for GLEW的最好方法是安装v110工具集,并使用它来维护二进制兼容的遗留代码。

有关配置旧平台程序的详细信息,请参阅:https://msdn.microsoft.com/en-us/library/jj851139.aspx

票数 1
EN

Stack Overflow用户

发布于 2017-05-15 21:01:22

似乎没有包含v141 PlatformToolset的包。通过编辑packages\googletest.1.8.0.0\build\native\googletest.targets:中包含的配置,您始终可以针对v141项目强制链接v140目标二进制文件

代码语言:javascript
运行
复制
<ItemDefinitionGroup Label="Win32 and v140 and Release" Condition="'$(Platform.ToLower())' == 'win32' And '$(PlatformToolset.ToLower())' == 'v140' And ( $(Configuration.ToLower().IndexOf('debug')) == -1 )"> 

代码语言:javascript
运行
复制
<ItemDefinitionGroup Label="Win32 and v140 and Release" Condition="'$(Platform.ToLower())' == 'win32' And '$(PlatformToolset.ToLower())' == 'v141' And ( $(Configuration.ToLower().IndexOf('debug')) == -1 )"> 

但你的里程可能会有所不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41568619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档