我尝试用NASM和GoLink制作一个SDL 2程序,只是为了好玩,但是我无法将SDL2main.a和SDL 2链接到我的可执行文件。我使用的是win 64架构。
我的主要. asm
[bits 64]
extern ExitProcess
extern SDL_Init
extern SDL_Quit
SDL_INIT_VIDEO equ 0x00000020
section .text
_start:
mov rcx, SDL_INIT_VIDEO
call SDL_Init
call SDL_Quit
xor rcx, rcx
call ExitProcess
这是我构建.exe的方法:
nasm -f win64 main.asm -o main.obj
.\GoLink.exe /console /entry _start /fo prog.exe main.obj kernel32.dll
我得到了以下错误:
GoLink.Exe Version 1.0.4.1 Copyright Jeremy Gordon 2002-2022 info@goprog.com
Error!
The following symbols were not defined in the object file or files:-
SDL_Init
SDL_Quit
Output file not made
我的静态库位于一个./lib文件夹中,如果它可以帮助。
1条答案
按热度按时间bd1hkmkf1#
GoLink不理解基于MinGW的工具链所创建的
.a
静态库文件格式。如果您打算使用GoLink,则需要获取一份可与Microsoft工具和链接器一起使用的SDL2库。在您的情况下,您需要在download page上使用Visual C++的SDL2开发库,而不是您目前使用的MinGW库。