C++ cl.exe和ml.exe存在问题
我使用cl命令编译了一个cpp文件:C++ cl.exe和ml.exe存在问题,c++,visual-studio,compiler-errors,cl.exe,C++,Visual Studio,Compiler Errors,Cl.exe,我使用cl命令编译了一个cpp文件: cl test.cpp //the generated test.exe can work well 然后我用了另一种方式: cl /Fa /c test.cpp //generate a test.asm assembly file ml test.asm // there failed!!! 为什么??如何解决 源代码: //:test.cpp #include<iostream> using namespace st
cl test.cpp //the generated test.exe can work well
然后我用了另一种方式:
cl /Fa /c test.cpp //generate a test.asm assembly file
ml test.asm // there failed!!!
为什么??如何解决
源代码:
//:test.cpp
#include<iostream>
using namespace std;
int main()
{
cout<<"hello\n";
}
<>这可能是C和C++的区别。这几天让我很困惑(
如何解决?请帮助我。当生成异常处理代码时,编译器会生成无效的程序集列表。Microsoft Connect上存在一个打开的错误:
在对bug的响应中,有一个半心半意的“我们将考虑修复这个”,同时还声明“C/C++编译器生成的文件是为了信息目的”。 看起来您可以针对此特定问题进行“可编写脚本”的修复:
- 剪切
语句后面的text$x ENDS
语句ENDP
- 将其粘贴到上一个
\u文本结束之前
不幸的是,在应用此修复程序后,使用
fs
重写和一些未定义符号的指令会出现一些新问题。谁知道在使用更复杂的程序尝试此操作后还会遇到什么问题呢?您发布的代码编译得很好。可能是您的编译器有问题?您使用的是哪种编译器?呵呵w?我使用Visual studio 2010I复制。ENDP上方的_文本结尾位置错误,它需要位于其下方。这种情况不止一次,它会被使用/EHs时获得的异常处理程序绊倒(必需)你可以在连接上报告bug。MySo.ToMi修改了ASM文件,把EnP放到了文本的末尾。但是我还是关闭了C++异常选项,然后重试。同样的错误非常感谢。我在你所说的时候修复文件。解决这个不匹配的问题。然后我修改<代码> FS<代码>。但是第二个问题是关于未定义的符号,我还不能解决它。在2010年,它比“半心半意”更重要:在使用Microsoft C/C++编译器以x64为目标之前,我们呼吁不再支持汇编C/C++生成的列表文件。换句话说,列表文件仅供参考。即使不受支持,x86目标编译器中的列表文件也有可能被汇编。But使用x64目标编译器,会有许多事情会阻止汇编列表文件
//test.cpp
#include<stdio.h>
void main()
{
printf("hello");
}
cl /Fa /c test.cpp
ml test.asm //ok!