Dit is waarschijnlijk een heel triviaal iets.
Ik heb een bestand waaraan bepaalde functies (opzettelijk) ontbreken. Het is de bedoeling dat ik die zelf implementeer. Dit bestand is een ELF relocatable binary.
Stel dat de code in dat bestand gebruik maakt van de functie foo().
Als ik 'm dan gewoon ga compilen krijg ik uiteraard de melding 'undeclared reference to foo'. Dat is logisch.
Dus wil ik een library maken waar de functie 'foo' in zit.
Goed.. van dat bestand maak ik een library.. ik heb zowel statisch (.a) als dynamisch (.so.1) geprobeerd. Dat gaat an sich allemaal goed.
Laten we er even vanuitgaan dat die library libdummy.so.1 heet.
Nu geef ik de door mij gemaakte library mee:
gcc -Wall -ldl -L\pad\naar\library -ldummy inputfile.elf
Ik zou dan verwachten dat 'het probleem' opgelost is, maar helaas.. ik krijg nog steeds 'undefined reference'.
wat doe ik fout?
Nog vermeldenswaardig: de declaratie van foo() komt in de library overeen met de functiecall zoals gedaan in de elf file.
Ik heb een bestand waaraan bepaalde functies (opzettelijk) ontbreken. Het is de bedoeling dat ik die zelf implementeer. Dit bestand is een ELF relocatable binary.
Stel dat de code in dat bestand gebruik maakt van de functie foo().
Als ik 'm dan gewoon ga compilen krijg ik uiteraard de melding 'undeclared reference to foo'. Dat is logisch.
Dus wil ik een library maken waar de functie 'foo' in zit.
code:
1
2
| void foo () { } |
Goed.. van dat bestand maak ik een library.. ik heb zowel statisch (.a) als dynamisch (.so.1) geprobeerd. Dat gaat an sich allemaal goed.
Laten we er even vanuitgaan dat die library libdummy.so.1 heet.
Nu geef ik de door mij gemaakte library mee:
gcc -Wall -ldl -L\pad\naar\library -ldummy inputfile.elf
Ik zou dan verwachten dat 'het probleem' opgelost is, maar helaas.. ik krijg nog steeds 'undefined reference'.
wat doe ik fout?
Nog vermeldenswaardig: de declaratie van foo() komt in de library overeen met de functiecall zoals gedaan in de elf file.
[ Voor 6% gewijzigd door Verwijderd op 10-02-2009 15:51 ]