已经发现了很多关于这个错误,但是我的情况还没有与之相匹配。
我正在以调试模式构建一个解决方案(有很多项目),其中一个是抛出这个错误,我使用的是VS2010,语言是C ++,。net 4.0版,之前这个项目是在vs2008中编译的,然后是VS2010 ,一切都好,现在我买了一台安装了VS2010的新机器,现在面临这个错误。
需要注意的主要事项是:
属性设置:
自从过去以来我一直在使用这些设置,只有在相同的调试模式下,它才能在VS2010的旧机器中运行良好。
怎么办?
答案 0 :(得分:1)
我正在使用Visual Studio 2013。
我有一个非常简单的C程序的类似症状。在项目属性中,我将General / Platform-Toolset设置从“Visual Studio 2010”更改为“Visual Studio 2013 v120”,并为我解除了此错误。
答案 1 :(得分:0)
如错误所示,预编译头与/clr
编译文件不兼容。
您可以为使用cpp
或整个项目(/clr
- > C/C++
- > {{1}编译的Precompiled Headers
文件停用预编译标头}:Precompiled Header
)。我不确定区别是什么,但两者似乎对我有用。
答案 2 :(得分:0)
Doc并非完全错误,但我打赌这不是在这里发生的事情。
你有没有像这样的东西:
#using namespace boost::asio;
...而不是像这样的东西?
using namespace boost::asio;
两者"使用"和"#使用"在Visual Studio中有有效的角色 - 但如果你的意思是纯C ++语言关键字,请确保你使用的是前者!后者确实用于托管代码。见这里:
https://msdn.microsoft.com/en-us/library/yab9swk4.aspx
在Visual Studio 2015中出错会产生以下影响:
构建输出: 1> thingy.cpp(3):错误C2006:'#使用':预期文件名,找到'命名空间' 1> thingy.cpp(3):致命错误C1190:托管目标代码需要' / clr'选项
请注意,尝试"满足"通过删除"名称空间"关键字和引用该值只会导致第二个错误。
(我认为值得一提,因为随着Visual Studio和C ++语言规范的不断变化,人们尝试了他们知道不应该工作的各种语法,如果它突然编译,只是假设规范或工具已经以某种方式改变了他们没有时间跟上 - 特别是如果错误信息似乎与"功能有关"他们无法&#39 ;不要太在意,也不要使用。)