Debug配置下正常运行,Release下生成时报错,网上查了各种改配置的方法,还是报错,微软自己的方法也不行。c++标准是c++20。
结果发现是else语句内return的原因,跳到最外部return就好了。此外if是在一个for循环里,判断True后进行了文件io和创建新进程。
之后我写了一个这样的程序测试,编译时没有报错。
int main() {
for (int i = 0; i < 100; i++) {
if (xxx) {
}
else {
return 0;
}
}
}
加上打开文件后也没有报错。
到这我准备复制原来的项目,把return语句移到else里面看看还会不会报错。
结果是不报错……
在解决c1001后我确实做了一些更改:加了一个函数,把if语句的条件稍微修改了一下。但是不知道为什么这下编译器就能运行了。
把更改的部分删掉也不行,怎么样都复现不了。
也许只是像报错时提示的那样,稍微修改一下代码就好了.