assembly - LNK 2001 无法解析的外部符号 _mainCRTStartup MASM

标签 assembly linker masm irvine32

我正在大学学习汇编,我们收到了一张包含 MASM 615 的 CD,并且我们正在使用 Irvine32 包含库。在学校计算机上一切正常,但当我尝试在家庭计算机上编译并运行相同的代码时,出现链接错误。

INCLUDE Irvine32.inc

.code
main PROC

mov eax,10000h      ; EAX = 10000h
add eax,40000h      ; EAX = 50000h
sub eax,20000h      ; EAX = 30000h
call DumpRegs

exit
main ENDP
END main

这段代码在学校的电脑上运行良好。在家里,我进入 DOS,设置 MASM 文件夹的路径,然后创建 Make32 文件。

这是我得到的错误:

LINK32 : error LNK2001: unresolved external symbol _mainCRTStartup
test.exe : fatal error LNK1120: 1 unresolved externals

程序编译(我得到了 .lst、.obj 和 .pdb 文件),但仅此而已。我想这是因为我家里有一个 64 位操作系统,但我对如何在 64 位环境中启动并运行它一无所知 - CD 或书籍没有关于 64 位系统的内容。只有 make16 或 make32 .bat 文件。这真是令人沮丧,因为这意味着我不能在家做任何工作,除非有解决办法?

最佳答案

其他答案让我感到困惑,所以我将添加我的解决方案。 在项目的属性中转到

配置属性>>链接器>>高级

高级中,顶部应该是入口点。输入main

关于assembly - LNK 2001 无法解析的外部符号 _mainCRTStartup MASM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379794/

相关文章:

assembly - 我可以通过保存和修改指令指针来执行相当于跳转到标签的操作吗?

c - (C 中的内联汇编)汇编程序消息 : Error: unknown pseudo-op:

c - 包装函数的内联汇编器由于某种原因不起作用

arrays - 在 .data 中对数组进行索引会导致地址远高于数组

c - 内存空间布局/奇怪的内存(堆栈)行为 C/ASM?

c++ - 为什么我在这段代码中得到一个 undefined reference ?

haskell - 使用 FFI 声明时的 GHCi 运行时链接器问题

objective-c - 使用-lobjc 还是不使用-lobjc?

汇编语言 - 堆栈机

c++ - 具有多个参数的 masm x64 上的 Printf