c-链接任天堂3DS端口项目



我正试图使用反向工程SDL2 PC端口将《猛禽阴影召唤》移植到任天堂3DS。但是,在链接过程中遇到了一些问题。我应该指出,这项工作仍在进行中。

我的代码托管在github上:github.com/RetroGamer02/raptor3ds

我使用的SDL2库来自github.com/xerpi/SDL-3DS-

错误日志如下:

linking raptor3ds.elf
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_RenderPresent':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:1053: undefined reference to `GPU_FinishDrawing'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:1055: undefined reference to `GPUCMD_Finalize'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:1056: undefined reference to `GPUCMD_FlushAndRun'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_RenderFillRects':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:784: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:794: undefined reference to `GPU_SetAttributeBuffers'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:806: undefined reference to `GPU_DrawArray'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_CreateRenderer':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:442: undefined reference to `GPU_Init'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:444: undefined reference to `GPU_Reset'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `matrix_gpu_set_uniform':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:1150: undefined reference to `GPU_SetFloatUniform'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_CreateRenderer':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:460: undefined reference to `GPU_SetViewport'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:464: undefined reference to `GPU_DepthMap'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:465: undefined reference to `GPU_SetFaceCulling'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:466: undefined reference to `GPU_SetStencilTest'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:467: undefined reference to `GPU_SetStencilOp'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:468: undefined reference to `GPU_SetBlendingColor'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:469: undefined reference to `GPU_SetDepthTestAndWriteMask'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:473: undefined reference to `GPU_SetAlphaBlending'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:480: undefined reference to `GPU_SetAlphaTest'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `GPU_SetDummyTexEnv':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:199: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:199: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:199: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:199: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:199: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_CreateRenderer':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:488: undefined reference to `GPUCMD_Finalize'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:489: undefined reference to `GPUCMD_FlushAndRun'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `TextureActivate':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:563: undefined reference to `GPU_SetTextureEnable'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:565: undefined reference to `GPU_SetTexEnv'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:575: undefined reference to `GPU_SetTexture'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_RenderCopy':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:902: undefined reference to `GPU_SetAttributeBuffers'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:914: undefined reference to `GPU_DrawArray'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:/devkitPro/portlibs/3ds/liblibsdl2.a(SDL_render_3ds.o): in function `N3DS_RenderCopyEx':
C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:1025: undefined reference to `GPU_SetAttributeBuffers'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: C:UsersUserNameDocumentsSDL-3DS-master/src/render/3ds/SDL_render_3ds.c:1037: undefined reference to `GPU_DrawArray'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: joyapi.o: in function `GetJoyButtonMapping()':
C:/Users/UserName/Documents/raptor3ds/src/joyapi.cpp:139: undefined reference to `SDL_GameControllerTypeForIndex(int)'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: joyapi.o: in function `IPT_CalJoyRumbleLow()':
C:/Users/UserName/Documents/raptor3ds/src/joyapi.cpp:177: undefined reference to `SDL_GameControllerRumble(_SDL_GameController*, unsigned short, unsigned short, unsigned long)'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: joyapi.o: in function `IPT_CalJoyRumbleMedium()':
C:/Users/UserName/Documents/raptor3ds/src/joyapi.cpp:188: undefined reference to `SDL_GameControllerRumble(_SDL_GameController*, unsigned short, unsigned short, unsigned long)'
c:/devkitpro/devkitarm/bin/../lib/gcc/arm-none-eabi/12.1.0/../../../../arm-none-eabi/bin/ld.exe: joyapi.o: in function `IPT_CalJoyRumbleHigh()':
C:/Users/UserName/Documents/raptor3ds/src/joyapi.cpp:199: undefined reference to `SDL_GameControllerRumble(_SDL_GameController*, unsigned short, unsigned short, unsigned long)'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [/opt/devkitpro/devkitARM/3ds_rules:42: /home/UserName/Documents/raptor3ds/raptor3ds.elf] Error 1
make: *** [Makefile:171: all] Error 2

Solved 3DS libSDL2自2016年以来一直没有更新,从2015年起需要旧版本的libctru和DEVKITARM。

最新更新