Undefined reference to ...

0

Mam problem, stworzylem program w 2 plikach i chcialem uzyc naglowka, aby moc zadeklarowac w nim wszystkie zmienne, lecz przy kompilacji wyskakuje mi z 20 bledow 'undefined reference to e' lub '... to d', itd. Nie wiem, czy musze jakos polaczyc te pliki???

Plik 1.cpp :

#include<iostream>
#include "nagl.h"
//Definicje zmiennych i deklaracja funkcji A
int a = 1;
double b = 1.0;
char c = 'A';
void funkcja_A();
int funkcja_D();
//***************************************************************************
void funkcja_A()
{
    // Wypisanie poczatkowych wartosci
std::cout << "Wartosci wszystkich zmiennych w funkcji_A przed zmiana wartosci:\na ="
<< a << "\nb =" << b << "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
    // Zmiana poczatkowych wartosci
a = 2;
b = 2.0;
c = 'B';
d = 2;
e = 2.0;
f = 'B';
    // Wypisanie zmienionych wartosci
std::cout << "Wartosci wszystkich zmiennych w funkcji_A:\na =" << a << "\nb =" << b
<< "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
// Wywolanie funkcji_D
int funkcja_D();

}
//***************************************************************************
//***************************************************************************
int funkcja_D()
{
    // Wypisanie wartosci z funkcji D
std::cout << "Wartosci wszystkich zmiennych w funkcji_D przed zmiana wartosci:\na ="
<< a << "\nb =" << b << "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
    // Zmiana poczatkowych wartosci
a = 3;
b = 3.0;
c = 'C';
d = 3;
e = 3.0;
f = 'C';
    // Wypisanie zmienionych wartosci
std::cout << "Wartosci wszystkich zmiennych w funkcji_D:\na =" << a << "\nb =" << b
<< "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
// Wywolanie funkcji_B
int funkcja_B();
}
//***************************************************************************









Plik 2.cpp


#include<iostream>
#include "nagl.h"
int d = 1;
double e = 1.0;
char f = 'A';
void funkcja_B();
int funkcja_C();
//***************************************************************************
void funkcja_B()
{
     // Wypisanie wartosci z funkcji A
std::cout << "Wartosci wszystkich zmiennych w funkcji_B przed zmiana wartosci:\na ="
<< a << "\nb =" << b << "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
    // Zmiana poczatkowych wartosci
a = 4;
b = 4.0;
c = 'D';
d = 4;
e = 4.0;
f = 'D';
    // Wypisanie zmienionych wartosci
std::cout << "Wartosci wszystkich zmiennych w funkcji_B:\na =" << a << "\nb =" << b
<< "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
// Wywolanie funkcji_C
int funkcja_C();
}
//***************************************************************************
//***************************************************************************
int funkcja_C()
{
    // Wypisanie wartosci z funkcji_B
std::cout << "Wartosci wszystkich zmiennych w funkcji_C przed zmiana wartosci:\na ="
<< a << "\nb =" << b << "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
    // Zmiana poczatkowych wartosci
a = 5;
b = 5.0;
c = 'E';
d = 5;
e = 5.0;
f = 'E';
    // Wypisanie zmienionych wartosci
std::cout << "Wartosci wszystkich zmiennych w funkcji_C:\na =" << a << "\nb =" << b
<< "\nc =" << c << "\nd =" << d << "\ne =" << e << "\nf = " << f;
}
//***************************************************************************



Plik nagl.h :



extern int a;
extern double b;
extern char c;
extern int d;
extern double e;
extern char f;
void funkcja_A();
void funkcja_B();
int funkcja_C();
int funkcja_D();

POMOCY!!!!

0

Koloruj składnię!
A program z tego co widzę to jest raczej dobrze.

0

Wiem, że powinienem kolorować tą składnię, jednak z pośpiechu tego nie zrobiłem. Mój kompilator to Code::Blocks, wyskakują mi te błędy, tak jakby ten nagłówek nie był dołączony do tych dwóch plików. Co może być przyczyną? Czy plik header wystarczy zapisać w tym folderze, czy proces linkowania jest bardziej skomplikowany???

0

Skompiluj je razem: g++ plik1.cpp plik2.cpp

0

po 'cout' podwójny 'znak mniejszości' (funkcja D plik1.cpp), a przed include'ami dałeś '#'?

1 użytkowników online, w tym zalogowanych: 0, gości: 1