nieznane referencje funkcji w programie składającym się z kilku plików

0

Korzystając z Symfonii C++, napisałem, a w sumie przepisałem kod programu w którego skład wchodzą 3 pliki. Niby ten program miał ukazać jak działa słowo extern.
Niestety nie można tego skompilować.
Pierwszy plik afryka.cpp:

#include<iostream>
#include "nagl.h"
using namespace std;
int ile_murzynow=9;
main(){
	cout<<"Poczatek programu\n";
	funkcja_francuska();
	funkcja_niemiecka();
	cout<<"Koniec programu \n";
}
void funkcja_egipska(){
	cout<<"Jestem w Kairze !-------- \n";
	cout<<"Na swiecie jest "<<ile_murzynow
	<<" murzynow, oraz "<<ile_europejczykow
	<<" europejczykow \n";
}
void funkcja_kenijska(){
	cout<<"Jestem w Nairobi !-------- \n";
	cout<<"Na swiecie jest "<<ile_murzynow
	<<" murzynow, oraz "<<ile_europejczykow
	<<" europejczykow \n";
}

Drugi plik europa.cpp

#include<iostream>
#include "nagl.h"
using namespace std;
int ile_europejczykow=8;
void funkcja_francuska(){
	cout<<"Jestem w Paryzu !-------- \n";
	cout<<"Na swiecie jest "<<ile_murzynow
	<<" murzynow, oraz "<<ile_europejczykow
	<<" europejczykow \n";
funkcja_egipska();
}
void funkcja_niemiecka(void){
	cout<<"Jestem w Berlinie !-------- \n";
	cout<<"Na swiecie jest "<<ile_murzynow
	<<" murzynow, oraz "<<ile_europejczykow
	<<" europejczykow \n";
funkcja_kenijska();
}

A plik nagl.h:

extern int ile_murzynow;
extern int ile_europejczykow;

void funkcja_egipska();
void funkcja_kenijska();
void funkcja_francuska();
void funkcja_niemiecka();

O co tu chodzi?
Jak dla mnie to jest pomieszane.
Nie wiem jak to autorowi działało.

0

A jaki błąd wyświetla kompilator? Pozwoli nam to na zlokalizowanie co jest nie tak w tym kodzie.

0

251bd7aacf.png
25a5da85cf.png

0

Masz to na pewno wszystko w jednym folderze?

0

tak. w jednym i tym samym. afryka.cpp, europa.cpp, nagl.h, i nie wiem skąd nagl.exe
Zrzynałem prosto z kursu, więc powinno być wszystko dobrze.

0

Może spróbuj jeszcze raz założyć projekt i nowe pliki dodać w IDE a nie poprzez tworzenie 'ręcznie' w katalogu. U mnie to działa.

0

U mnie nowy projekt nic nie daje. Wywala mi plik Makefile.win
b00f31214e.png

0

Musisz dodać do projektu wszystkie pliki *.cpp

Projekt | Dodaj do projektu

0

Dodałem wszystkie pliki .cpp do projektu, ale i tak mi wywala błąd w Makefile.win taki jak poprzednio. A co wpisać w nowym pliku który tworzony jest równocześnie z projektem?

0

w qt śmiga dobrze

brakuje int przed main()

0

dodanie int przed main nic nie daje. żadnej różnicy. czy będzie int czy nie, wychodzi mi jedno i to samo

0

Na oko to robisz bezmyślnie F9 czyli "kompiluj otwarty plik i uruchom" a powinienes zrobić Project -> Build All

0
adrian.widzew napisał(a):

dodanie int przed main nic nie daje. żadnej różnicy. czy będzie int czy nie, wychodzi mi jedno i to samo

ja nie powiedziałem, ze to jest rozwiązanie, bo program działa (ub) i bez tego, standard c++ wymaga zwrócenia int z maina

0

wymień ide na coś lepszego,

proponuję

http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

Express 2013 for Windows Desktop

0

"Gość nie potrafi tak prostego IDE jak DevC++ obsłużyć, w VS pogubi się ostatecznie."

możliwe, ale chyba Grębosz coś o visualu napisał z tego co pamiętam

i jak zrobić w nim projekt

ja przerabiałem Grębosza na visual studio 2008 express i sobie poradziłem będąc kompletnie zielonym

0

gośćabc, bez takich komentarzy.
wina jest chyba programu.
Zmieniłem na razie na eclipse, i działa, jak powinno

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