在QtCtreator中用VS2015版本编译时报错
Closed this issue · 9 comments
报错内容:
e:\project\configor-master\include\configor\configor_parser.hpp(103) : fatal error C1001: 编译器中发生内部错误。
(编译器文件“f:\dd\vctools\compiler\utc\src\p2\main.c”,第 255 行)
要解决此问题,请尝试简化或更改上面所列位置附近的程序。
请选择 Visual C++
“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息。
“D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\cl.exe”中的内部编译器错误
请选择 Visual C++
“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息
使用的是:与自定义类型转换的例子。
看下main.c 255行的代码
configor不支持c语言,必须c++11或以上
没有main.c文件,这个不是我创建的。
我测试的报错的代码:
#include
#include "configor/json.hpp"
struct User
{
int user_id;
std::string user_name;
CONFIGOR_BIND(
configor::json, User, // 将 User 类绑定到 json
CONFIGOR_REQUIRED(user_id), // user_id 字段必填,空值会引发异常
CONFIGOR_OPTIONAL(user_name) // user_name 字段非必填,空值会被忽略
);
};
int main(int argc, char *argv[])
{
User user_temp;
user_temp.user_id = 1;
user_temp.user_name = "test";
configor::json j = user_temp;
std::cout << j.dump() << std::endl;
return 0;
}
这句注释就没问题std::cout << j.dump() << std::endl;。
我这里没有方便的测试环境,如果可以的话提供下具体的编译错误吧,直接在VS2015上运行是没问题的
configor.zip
用Qt的环境编译的,工程文件上传了。。
编译器报告的信息太少,无法定位问题,先用上面的方法解决吧
好的,谢谢,VS2015的问题解决了。。我这用VS2022使用VS2017还是报上图错误,在QT里用VS2017编译就没问题,感觉很奇怪的问题。。