headerdatei einbinden?

gelber_hund

gelber_hund

Pseudo-Root
ich wollte hier gerade ein test-programm schreiben, dass auf mehrere dateien verteilt ist, nur irgendwie will es mit der *.h datei nicht so recht klappen.

//test.h
#include <iostream>
using namespace std;

void test(void);

//test.cpp
#include "test.h"

void test(void)
{
cout << "test" << endl;
};

//main.cpp
#include "test.h"
using namespace std;

int main()
{
test();

return 0;
}

nun wollte ich eben das programm mit anjuta kompilieren (kompilieren ging) und bei generieren bekam ich den fehler "undefined reference to `test(void)`". binde ich nun direkt test.cpp in main.cpp ein, geht es...

was hab ich denn nun vergessen (das ganze hat bisher immer geklappt, allerdings hab ich zu der zeit vc++ genommen, dass die dateien direkt ins projekt einbindet)
 
thorus

thorus

GNU-Freiheitskämpfer
ist die test.cpp mitcompiliert bzw gelinkt worden?

cu
thorus
 
gelber_hund

gelber_hund

Pseudo-Root
hmmm, das ist wohl der fehler...

habs eben mal manuell kompiliert und beide *.cpp dateien angegeben, dann ging es.

da muss ich wohl mal rausfinden, wie man anjuta beibringt alle dateien mitzukompilieren.
 
rup

rup

Haudegen
Normalerweise isr fuer soetwas ein makefile da, keine Ahnung ob anjuta das automatisch erstellen kann.
 
thorus

thorus

GNU-Freiheitskämpfer
anjuta ist an sich wirklich super!
nur teilweise kann es etwas kompliziert werden.
anjuta unterstützt wirklich (fast) alles was man sich vorstellen kann, natürlich auch makefiles. aber wenn man files nicht dem project hinzufügt, werden diese logischerweise ned compiliert!

cu
thorus
 
gelber_hund

gelber_hund

Pseudo-Root
kann man denn die neuen dateien für ein projekt "direkt" dem projekt zufügen, oder müssen die erst mit new erzeugt und dann im nachhinein dem projekt zugefügt werden? auf dem weg klappt es leider auch mit projekt nicht...
 
M

mapiox

Tripel-As
Hallo

Habe anjuta jetzt mal getestet.

Hab die Dateien leider nur durch importieren zum Project hinzugefügt bekommen. Ein direktes Erstellen im Project scheint nicht möglich zu sein.(oder ich bin zu blöd) ?(

Ein "Build Distribution" und anschließend ./configure , make, make install funktioniert auf jeden Fall.

Aber der Code der automatisch erzeugt wird ist auch nicht das wahre:
Code:
#include <iostream.h>
int main()

{
	cout << "Hello world\n";
	return (0);
}
 
gelber_hund

gelber_hund

Pseudo-Root
na, es kommt ja darauf an, was du für ein projekt erzeugst. wenn du zb ein gtk projekt beginnst erzeugt es den code für eine form.

allerdings hätte man bei der konsolenanwendung auch auf vodefinierten code verzichten können :P
 

Ähnliche Themen

String auf Konsole ausgeben

Funktion nicht gefunden

Problem mit Texteingabe

deprecated conversion from string constant to ‘char*’

Problem beim Kompilieren von C++ Code in Cygwin

Oben