以 Visual Studio 2013 结尾的错误环境变量路径

Posted

技术标签:

【中文标题】以 Visual Studio 2013 结尾的错误环境变量路径【英文标题】:Wrong environmental variable path ending in Visual Studio 2013 【发布时间】:2016-04-03 10:21:18 【问题描述】:

我正在处理 Autodesk FBX 文件,因此我以与 DirectX 标准环境等效的方式将环境变量添加到指向 FBX SDK 安装文件夹的系统表中。变量,设置如下:

FBXSDK_DIR = C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\

而且它工作得很好,至少在我决定下载VS2013 solution written in Japanese 之前,编译器突然抱怨包含;检查得更好,IntelliSense 现在说我的环境变量出现在包含的路径列表中,是这样的:

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2"

这导致包含是:

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2"include

...而不是:

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include

...因此抛出一个合法的错误。

现在显然,我首先想到的是它与编码和转义字符有关,但是我不知道是否可以更改设置来解决它或更复杂的问题。我有没有可能解决这个问题?无需从头开始重新制定解决方案。


编辑:这里有一些有趣的东西;如果我在 Include Directories 中写 $(FBXSDK_DIR)"",IntelliSense 会说两条路径(由于某种原因,包含总是在列表中出现两次)现在解析为:

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include"\"\"
C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include""""

如果我写$(FBXSDK_DIR)"""",它将是:

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include"\"\"\"\"
C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include""""""

【问题讨论】:

【参考方案1】:

您似乎将字符 \\ 与符号 \ 混淆了。第二个是所谓的转义字符,它使编译器忽略代码中的下一个字符。

因此,如果您想在字符串中使用一些特殊字符,例如\",您必须编写\\\"。第二个会让编译器关闭字符串。

这就是为什么

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include"\"\"\"\"

转化为

C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\include""""""

编译器(或预处理器?)认为您在第一个 " 处打开了一个字符串,并转义了后面的(无效)字符。


如果您发布制动代码,将更容易看到错误。

【讨论】:

不想听起来像个混蛋,但请重新阅读我的帖子:我知道“\”是转义字符,我发布的错误不在代码中,而是在方式Visual Studio 决定解决我在系统设置中设置的环境变量。 :) 你是如何设置环境变量的?这:`$(FBXSDK_DIR) = C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2` 看起来像一个损坏的指针。 右键单击计算机 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建...它没有损坏,它在所有其他解决方案上都能完美运行。它在什么方面看起来坏了? 如果你在我上面的评论中使用表达式(在脚本或类似的东西中)你会用你的覆盖FBXSDK_DIR 中值的副本。也许您在不应该出现的地方有"?您可以尝试使用文本编辑器手动检查您的解决方案文件。有时 Visual Studio 会弄乱它。 哦,你误会了。 "$(FBXSDK_DIR) = C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\" 不是实际的实现代码,我只是写它来解释如何调用变量以及它(通常)解析的内容到;变量名实际上只是FBXSDK_DIR。除了将 $(FBXSDK_DIR) 放入包含项之外,我没有在 Visual Studio 中添加任何其他设置。

以上是关于以 Visual Studio 2013 结尾的错误环境变量路径的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 TFS 2013 以使用 Visual Studio 2013 或 Visual Studio 2017 构建

Visual Studio中的环境变量(以Visual Studio 2013为例)

Visual Studio中的环境变量(以Visual Studio 2013为例)

如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013

如何在 Visual Studio 2013 中配置 SQL Server 以允许远程连接

无法将 matlab.exe 进程附加到 Visual Studio 2013 以调试 mex 文件?