[IP] header file

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Flipper
Posts: 193

[IP] header file

Post#1 » Thu Nov 15, 2012 8:28 pm

Kan iemand me een beetje verduidelijken hoe je een header file maakt? Ik doe blijkbaar iets verkeerd, want ik krijg het volgende error:

Code: Select all

testMathLib.o: In function `main':
testMathLib.cpp:(.text+0xf): undefined reference to `Add(int, int)'
collect2: ld gaf exit-status 1 terug
Wat ik gedaan heb:
(1) Een .cpp-file myMathLib.cpp aangemaakt met daarin de functiedefinities, waaronder dit:

Code: Select all

...
int Add(int a, int b) {
return a + b;
}
...
(2) Een .h-file myMath.lib.h aangemaakt met daarin de declaraties, waaronder dit:

Code: Select all

#ifndef INC_myMathLib_H
#define INC_myMathLib_H

int Add(int, int);
...
#endif
(3) Vervolgens heb ik een testprogramma testMathLib.cpp geschreven, die onder andere het onderstaande bevat:

Code: Select all

...
int main() {
cout << Add(5, 6) << endl;
}
(4) Dan heb ik testMathLib.cpp laten compilen. Hier krijg ik dan de error die ik aan het begin van dit topic heb aangegeven... Wat doe ik verkeerd? :cry:
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
djgl3nn
WOZ
Posts: 1938

Re: [IP] header file

Post#2 » Thu Nov 15, 2012 10:43 pm

include ge ergens ? :p

in u bijhorende .cpp en in u test.cpp moet ge u .h file includen
WINAK Schacht 2009-2010
WINAK Sport 2010-2011
WINAK Mentor Informatica 2011-2012
WINAK Ouwe Zak 2012-...

UA Sportraad Webmaster 2012-...

User avatar
Flipper
Posts: 193

Re: [IP] header file

Post#3 » Fri Nov 16, 2012 12:55 am

ah, moet dat ook ge-include-ed zijn in de file waar de functie-definities staan? Ik dacht dat dat allemaal vanzelf ging.. :lol:
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Flipper
Posts: 193

Re: [IP] header file

Post#4 » Fri Nov 16, 2012 11:30 am

Mmh, nee, daaraan ligt het niet, ik heb

Code: Select all

#include "myMathLib.h"
geschreven in testMathLib.cpp en myMathLib.cpp.. Maar nog steeds dezelfde error.. :(
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Flipper
Posts: 193

Re: [IP] header file

Post#5 » Fri Nov 16, 2012 5:16 pm

Case solved :D

Blijkbaar compileerde ik op de verkeerde manier, het moest NIET zo:

Code: Select all

g++ -c --pedantic testMathLib.cpp
g++ testMathLib.o -o testMathLib
maar WEL:

Code: Select all

g++ -c --pedantic myMathLib.cpp
g++ -c --pedantic testMathLib.cpp
g++ myMathLib.o testMathLib.o -o testMathLib
dus eerst alle bestanden compilen en dan ze allemaal samen naar één link zetten, had ik de praktijkassistent even verkeerd begrepen zeg.. :roll:
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Re: [IP] header file

Post#6 » Fri Nov 16, 2012 5:17 pm

Zoals die error zegt is er een ongedefinieerde referentie naar een functie met als signatuur "Add(int, int)". Dit komt er op neer dat je die functie oproept maar dat de linker geen implementatie kan vinden.

Dit kan in jouw geval 2 oorzaken hebben
  1. Je hebt de functie niet gedefinieerd
  2. Je laat de compiler de objectcode niet mee linken in de executable/library
Aangezien je die daadwerkelijk wel hebt gedefinieerd blijft dus het tweede over. Om dit te compileren moet het er minstens zo uit

Code: Select all

$> g++ -c main.cpp -o main.o
$> g++ -c implementation.cpp -o impl.o
$> g++ impl.o main.o -o main.exe
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 4 guests

cron