Linker Errors when trying to refactor and use multiple classes.

MotscoudBun

New Member
OP
Newbie
Joined
Nov 18, 2023
Messages
1
Trophies
0
Age
24
XP
27
Country
United Kingdom
Hey all! First time poster, long time lurker.
I've been starting to learn the Nintendo DS development suite and have been rather comfortable with what I've made so far
(A little platformer prototype)
But I'm at the point I want to refactor the code - seperate things into multiple classes.
Tonight I have seperated the player out of main, however I'm getting linker errors.

/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: main.o: in function `main':
/home/edlyn/nds-examples-20200510/playingaroundextendable/source/main.cpp:126:(.text.startup+0x86): undefined reference to `Character::Character()'
/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: /home/edlyn/nds-examples-20200510/playingaroundextendable/source/main.cpp:168:(.text.startup+0xa6): undefined reference to `Character::draw(glImage*)'
/opt/devkitpro/devkitARM/bin/../lib/gcc/arm-none-eabi/13.2.0/../../../../arm-none-eabi/bin/ld: /home/edlyn/nds-examples-20200510/playingaroundextendable/source/main.cpp:134:(.text.startup+0x128): undefined reference to `Character::update(Platform*, int, int, int)'
collect2: error: ld returned 1 exit status

This didn't happen before the refactor, and the majority of the code - has not changed.
I have posted the current version on my github:
Motscoud/NDS-Demo-game/

If anyone can save my sanity, I'll be appreciative, I'm sure it's something small.
 

metroid maniac

An idiot with an opinion
Member
Joined
May 16, 2009
Messages
2,089
Trophies
2
XP
2,682
Country
Functions defined within the body of a class are implicitly inline which means that they won't always be emitted as externally visible symbols.

So just have Character::Character() { ..., void Character::update(Platform platforms[], int num_platforms, int scrollX, int scrollY) { ..., etc inside your .cpp file. You generally shouldn't have a second definition of the same class inside the .cpp file anyway.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • SylverReZ @ SylverReZ:
    @Jayro, I don't see whats so special about the DS ML, its just a DS lite in a phat shell. At least the phat model had louder speakers, whereas the lite has a much better screen.
    +1
  • SylverReZ @ SylverReZ:
    They probably said "Hey, why not we combine the two together and make a 'new' DS to sell".
  • Veho @ Veho:
    It's a DS Lite in a slightly bigger DS Lite shell.
    +1
  • Veho @ Veho:
    It's not a Nintendo / iQue official product, it's a 3rd party custom.
    +1
  • Veho @ Veho:
    Nothing special about it other than it's more comfortable than the Lite
    for people with beefy hands.
    +1
  • Jayro @ Jayro:
    I have yaoi anime hands, very lorge but slender.
  • Jayro @ Jayro:
    I'm Slenderman.
  • Veho @ Veho:
    I have hands.
  • BakerMan @ BakerMan:
    imagine not having hands, cringe
    +1
  • AncientBoi @ AncientBoi:
    ESPECIALLY for things I do to myself :sad:.. :tpi::rofl2: Or others :shy::blush::evil:
    +1
  • The Real Jdbye @ The Real Jdbye:
    @SylverReZ if you could find a v5 DS ML you would have the best of both worlds since the v5 units had the same backlight brightness levels as the DS Lite unlockable with flashme
  • The Real Jdbye @ The Real Jdbye:
    but that's a long shot
  • The Real Jdbye @ The Real Jdbye:
    i think only the red mario kart edition phat was v5
  • BigOnYa @ BigOnYa:
    A woman with no arms and no legs was sitting on a beach. A man comes along and the woman says, "I've never been hugged before." So the man feels bad and hugs her. She says "Well i've also never been kissed before." So he gives her a kiss on the cheek. She says "Well I've also never been fucked before." So the man picks her up, and throws her in the ocean and says "Now you're fucked."
    +2
  • BakerMan @ BakerMan:
    lmao
  • BakerMan @ BakerMan:
    anyways, we need to re-normalize physical media

    if i didn't want my games to be permanent, then i'd rent them
    +1
  • BigOnYa @ BigOnYa:
    Agreed, that why I try to buy all my games on disc, Xbox anyways. Switch games (which I pirate tbh) don't matter much, I stay offline 24/7 anyways.
  • AncientBoi @ AncientBoi:
    I don't pirate them, I Use Them :mellow:. Like I do @BigOnYa 's couch :tpi::evil::rofl2:
    +1
  • cearp @ cearp:
    @BakerMan - you can still "own" digital media, arguably easier and better than physical since you can make copies and backups, as much as you like.

    The issue is DRM
  • cearp @ cearp:
    You can buy drm free games / music / ebooks, and if you keep backups of your data (like documents and family photos etc), then you shouldn't lose the game. but with a disk, your toddler could put it in the toaster and there goes your $60

    :rofl2:
  • cearp @ cearp:
    still, I agree physical media is nice to have. just pointing out the issue is drm
  • rqkaiju2 @ rqkaiju2:
    i like physical media because it actually feels like you own it. thats why i plan on burning music to cds
  • cearp @ cearp:
    It's nice to not have to have a lot of physical things though, saves space
    cearp @ cearp: It's nice to not have to have a lot of physical things though, saves space