[英]How to use x64 assembly with C++ on windows?
cpp.cpp:
#include <iostream>
extern "C" int returnnum();
int main() { std::cout << returnnum() << "\n"; }
asm.asm:
segment .text
global _returnnum
_returnnum:
mov rax, 420
ret
首先,我使用nasm -f win64 asm.asm
编译程序集文件。
然后,我用g++ cpp.cpp asm.obj
编译 C++ 文件。
但这给了我一个错误:
asm.obj: file not recognized: File format not recognized
collect2.exe: error: ld returned 1 exit status
我知道我可以将rax
更改为eax
并使用-f win32
进行编译,它会工作,但我想要一个 64 位应用程序。 有什么办法可以做到这一点吗?
如果这有帮助:
g++ --version
: g++ (MinGW.org GCC-6.3.0-1) 6.3.0
nasm --version
: NASM 版本 2.15rc12 编译于 2020 年 6 月 26 日
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.