c++ - 接口(interface) C++ 和 asm 编译错误

标签 c++ assembly interface

我正在尝试连接 C++ 和 asm 代码。 c++ 调用一个函数,该函数在 asm 中定义

我尝试编译它,但它给了我一些错误。主要问题是,我需要创建单独的 c++ 和 asm 源文件还是只需要一个。如果有,是哪种类型? (cpp 或 asm)。

当我尝试将其编译为单独的源文件时遇到的两个错误:

Error1: error A1000: cannot open file : ..\..\..\..\..\Desktop\test.asm
Error2: error MSB3721: The command "ml.exe /c /nologo /Zi /Fo"Debug\test.obj" /W3 /errorReport:prompt  /Ta..\..\..\..\..\Desktop\test.asm" exited with code 1.

这可能对我来说真的很愚蠢和琐碎,但我被卡住了。 有什么想法吗?

最佳答案

这取决于您在做什么、您的文件内容和您使用的操作系统。看起来你在 Windows 上使用 MS 宏汇编程序。您的“test.asm”文件应该只包含汇编语言。您的第一个错误表明无法找到(或打开)您的程序集文件。确保您有正确的文件位置。一旦 asm 文件实际组装成功,它将生成一个 obj 文件。您可以像使用任何 obj 文件一样使用此文件。确保程序集中的任何函数都遵循正确的调用链接(对于 C++)。你可能想看看这个问题how do i properly link asm files to c++?

如果您只有少量汇编,您可以使用“内联汇编”。你可以在这里找到更多相关信息:http://msdn.microsoft.com/en-us/library/4ks26t93(v=vs.110).aspx

关于c++ - 接口(interface) C++ 和 asm 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20157455/

相关文章:

java - 在 Java 中使用 OpenCV 进行减法

c++ - 防止通过程序自动锁定Windows(不更改任何系统设置)

assembly - 如何在 MASM 中声明 __m128i 常量?

assembly - 皮质-M3 : Changing Interrupt Return Address

visual-studio-code - 关闭 VS Code 后如何找到欢迎屏幕?

c++ - std::map 中值的内存分配

c++ - 使用 boolean 值表示整数

assembly - SIMD minmag 和 maxmag

java - Java 中单个统一参数与特定参数 (>= 7)

iphone - 如何在 UITextField 上自动打开键盘?