在大學學習匯編的時候,遇到了如下問題:
我有 3 個檔案(所有檔案都過于簡單,它們要大得多):
主程式
.586
.model flat, stdcall
option casemap :none
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include module.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
TextBuf db 64 dup(?)
Caption db "Test caption", 0
value1 db 25
.code
main:
call StrHex_MY
invoke MessageBoxA, 0, ADDR TextBuf, ADDR Caption, 0
invoke ExitProcess, 0
end main
模塊.asm
.586
.model flat, c
.code
StrHex_MY proc
xor eax, eax
StrHex_MY endp
end
模塊.inc
EXTERN StrHex_MY : proc
在嘗試編譯它之后,我得到了錯誤:
C:\SystemProgramming\lab2copy>ml.exe /c /coff main.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: main.asm
C:\SystemProgramming\lab2copy>link.exe /subsystem:console main.obj
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
main.obj : error LNK2001: unresolved external symbol _StrHex_MY
main.exe : fatal error LNK1120: 1 unresolved externals
如何正確包含檔案?
uj5u.com熱心網友回復:
解決方案:
我只是編譯不正確
ml /c /coff main.asm
ml /c /coff module.asm
link /subsystem:console main.obj module.obj
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476922.html
