Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Visual Studio 2013中结束的环境变量路径错误_C++_Visual Studio_Visual Studio 2013_Encoding_Escaping - Fatal编程技术网

C++ Visual Studio 2013中结束的环境变量路径错误

C++ Visual Studio 2013中结束的环境变量路径错误,c++,visual-studio,visual-studio-2013,encoding,escaping,C++,Visual Studio,Visual Studio 2013,Encoding,Escaping,我正在使用Autodesk FBX文件,因此我向系统表中添加了一个环境变量,以与DirectX标准环境等效的方式指向FBX SDK安装文件夹。变量,设置如下: FBXSDK_DIR = C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\ 它工作得很好,至少在我决定下载e之前,编译器突然抱怨包含;更好地检查,IntelliSense现在说,我的环境变量(如包含路径列表中所示)是: C:\Program Files\Autodesk\FBX\FBX SD

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

FBXSDK_DIR = C:\Program Files\Autodesk\FBX\FBX SDK\2016.1.2\
它工作得很好,至少在我决定下载e之前,编译器突然抱怨包含;更好地检查,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目录中写入
$(FBXSDK_DIR)“
,IntelliSense会说这两个路径(由于某种原因,Include在列表中总是出现两次)现在解析为:

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""""""

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

因此,如果您想在字符串中使用一些特殊字符,如
\
,您必须编写
\\
\”
。第二种方法是让编译器关闭字符串

这就是为什么

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)放入包含项之外,我没有在VisualStudio中添加任何其他设置。