Unresolved external symbol

0

Witam. Mam taki o to kod:

#include <iostream>
#include <SFML/Graphics.hpp>

//#include "klasy.h"



struct zmienne_scen {

	int odliczanie_do_odliczania;
	bool zaladowane_tekstury;


};

//40:31

extern zmienne_scen zmienne_funkcji[2];





static void loadTextures_function(int id) {

	if (zmienne_funkcji[id].zaladowane_tekstury == false) {

		zmienne_funkcji[id].odliczanie_do_odliczania = 1000;
		
		//Load textures...

		zmienne_funkcji[id].zaladowane_tekstury = true;

	}

}



static void scena_functions(std::string scena_nr, sf::RenderWindow& okno, int id) {

	std::cout << "Hello" << std::endl;

	if (scena_nr == "DragRaceTime") {


		if (zmienne_funkcji[id].odliczanie_do_odliczania > 0) {
			//zmienne_funkcji[id].odliczanie_do_odliczania--;
		}
		else {

			//textures[id].displayTexture(okno, 0, 0);
			
		}


	}

};

I wywala mi takie błędy:
https://imgur.com/a/KhNbbun

0

nie linkujesz pliku z definicją extern zmienne_scen zmienne_funkcji[2];

0

W ustawieniach linkera trzeba plik dodać?

0

W projekcie musisz te pliki miec

0

Miałem dodane https://imgur.com/a/i8j9IQw

0

A to nie ma byc w source files? ;)

0

A to jest jakaś różnica? Te wszystkie pliki są w tej samej scieżce.

0

Przerzuciłem ten plik do Source Files i bład nadal jest

1

Nie rozumiesz różnicy między definicją a deklaracją. extern zmienne_scen zmienne_funkcji[2]; mówi tylko (deklaruje), że gdzieś takie coś jest (zdefiniowane). Ale musisz tę definicję gdzieś mieć (bez extern) - w jakimś pliku .cpp (konkretniej: ma być w jednym TU)

1

Jak napisali powyżej, w jakimś pliku cpp musisz mieć:

zmienne_scen zmienne_funkcji[2];

Ale ogólnie, najlepiej jakbyś zmiennych globalnych nie uzywał... Bo jak widzisz już na tak wczesnym etapie tworza się problemy, a dalej będzie bardziej pod górkę...

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