問題如下:
linking audio_modes.elf /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/bin/ld: warning: nds-examples/audio/maxmod/audio_modes/audio_modes.elf has a LOAD segment with RWX permissions /opt/devkitpro/devkitARM/lib/gcc/arm-none-eabi/12.2.0/../../../../arm-none-eabi/bin/ld: warning: nds-examples/audio/maxmod/audio_modes/audio_modes.elf has a LOAD segment with RWX permissions ndstool -c nds-examples/audio/maxmod/audio_modes/audio_modes.nds -9 nds-examples/audio/maxmod/audio_modes/audio_modes.elf -b /opt/devkitpro//libnds/icon.bmp "audio_modes;built with devkitARM;http://devkitpro.org" Nintendo DS rom tool 2.2.0 - Dec 15 2022 by Rafael Vuijk, Dave Murphy, Alexei Karpenko failed to open input file: '/opt/devkitpro//libnds/default.elf' make[4]: *** [/opt/devkitpro/devkitARM//ds_rules:38: nds-examples/audio/maxmod/audio_modes/audio_modes.nds] Error 1 make[3]: *** [Makefile:114: build] Error 2 make[3]: Leaving directory 'nds-examples/audio/maxmod/audio_modes' make[2]: *** [Makefile:3: all] Error 1 make[2]: Leaving directory 'nds-examples/audio/maxmod' make[1]: *** [Makefile:3: all] Error 1 make[1]: Leaving directory 'nds-examples/audio' make: *** [Makefile:13: examples] Error 1
因為ndstool有一個預設的ARM7 EFL路徑(default.elf)
/*
* GetDefaultArm7
* Retrieves the path to the default homebrew ARM7 component
*/
void GetDefaultArm7(char* buffer, size_t size)
{
char *devkitProPATH;
devkitProPATH = getenv("DEVKITPRO");
#ifdef __WIN32__
// convert to standard windows path
if ( devkitProPATH && devkitProPATH[0] == '/' ) {
devkitProPATH[0] = devkitProPATH[1];
devkitProPATH[1] = ':';
}
#endif
if (!devkitProPATH) {
fprintf(stderr,"No arm7 specified and DEVKITPRO missing from environment!\n");
exit(1);
}
strncpy(buffer, devkitProPATH, size);
strncat(buffer, "/libnds/default.elf", size);
}
但是預設的ds_rules(/opt/devkitpro/devkitARM/ds_rules)卻只有ARM9路徑
36 #--------------------------------------------------------------------------------- 37 %.nds: %.elf 38 ndstool -c $@ -9 $< -b $(GAME_ICON) "$(GAME_TITLE);$(GAME_SUBTITLE1);$(GAME_SUBTITLE2)" $(_ADDFILES) 39 $(SILENTMSG) built ... $(notdir $@)
因此,只要添加ARM7路徑(-7 $<)就可以
36 #--------------------------------------------------------------------------------- 37 %.nds: %.elf 38 ndstool -c $@ -9 $< -7 $< -b $(GAME_ICON) "$(GAME_TITLE);$(GAME_SUBTITLE1);$(GAME_SUBTITLE2)" $(_ADDFILES) 39 $(SILENTMSG) built ... $(notdir $@)