Bjarne Stroustrup problem linkera z plikami nagłówkowymi fltk

0

Witam mam problem, gdyż po dołączeniu plików nagłówkowych z książki programming principles and pratice using with cpp do Visual Studio 2017, wyrzuca mi linker error 2005
Co mogę zrobić ?

0

Masz ustawioną jakąś ścieżkę do bibliotek?

2
Portalion napisał(a):

Witam mam problem, gdyż po dołączeniu plików nagłówkowych z książki programming principles and pratice using with cpp do Visual Studio 2017, wyrzuca mi linker error 2005
Co mogę zrobić ?

Masz dwie możliwości:

  • Możesz czekać na telepatę lub wróżbitę, którzy będą wiedzieć dokładnie jaki i gdzie masz błąd.
  • Albo weź łaskawie otwórz okienko "Output", odszukaj pierwszą od góry linijkę z błędem, skopiuj wszystko od zaczynając od jednej linijki wyżej, aż po kolejny błąd (zrób troszkę zapasu) i wklej na forum. Nie zapomnij opisać z dokładnie jakim przykładem masz problem, oraz w jaki sposób budujesz ten przykład.

http://home.agh.edu.pl/~masior/doku.php?id=matdod:fltkinst

0

Problem nie jest z biblioteką FLTK ale z plikami
fltk.h
Graph.cpp
Graph.h
GUI.cpp
GUI.h
Point.h
Simple_window.h
std_lib_facilities.h
Window.cpp
Window.h
z tej strony http://www.stroustrup.com/Programming/PPP2code/
, zrobiłem wszystko tak jak kazano tutaj https://bumpyroadtocode.com/2017/08/05/how-to-install-and-use-fltk-1-3-4-in-visual-studio-2017-complete-guide/
przy próbie kompilacji wywala takie errory:

1>Graph.obj : error LNK2005: Element "void __cdecl seed_randint(int)" (?seed_randint@@YAXH@Z) jest już zdefiniowany w elemencie Graph.obj
1>Graph.obj : error LNK2005: Element "class std::mersenne_twister_engine<unsigned int,32,624,397,31,2567483615,11,4294967295,7,2636928640,15,4022730752,18,1812433253> & __cdecl get_rand(void)" (?get_rand@@YAAAV?$mersenne_twister_engine@I$0CA@$0CHA@$0BIN@$0BP@$0JJAILANP@$0L@$0PPPPPPPP@$06$0JNCMFGIA@$0P@$0OPMGAAAA@$0BC@$0GMAHIJGF@@std@@XZ) jest już zdefiniowany w elemencie Graph.obj
1>Graph.obj : error LNK2005: Element "void __cdecl seed_randint(int)" (?seed_randint@@YAXH@Z) jest już zdefiniowany w elemencie Graph.obj
1>Graph.obj : error LNK2005: Element "class std::mersenne_twister_engine<unsigned int,32,624,397,31,2567483615,11,4294967295,7,2636928640,15,4022730752,18,1812433253> & __cdecl get_rand(void)" (?get_rand@@YAAAV?$mersenne_twister_engine@I$0CA@$0CHA@$0BIN@$0BP@$0JJAILANP@$0L@$0PPPPPPPP@$06$0JNCMFGIA@$0P@$0OPMGAAAA@$0BC@$0GMAHIJGF@@std@@XZ) jest już zdefiniowany w elemencie Graph.obj
1>Graph.obj : error LNK2005: Element "void __cdecl seed_randint(int)" (?seed_randint@@YAXH@Z) jest już zdefiniowany w elemencie Graph.obj
1>Graph.obj : error LNK2005: Element "class std::mersenne_twister_engine<unsigned int,32,624,397,31,2567483615,11,4294967295,7,2636928640,15,4022730752,18,1812433253> & __cdecl get_rand(void)" (?get_rand@@YAAAV?$mersenne_twister_engine@I$0CA@$0CHA@$0BIN@$0BP@$0JJAILANP@$0L@$0PPPPPPPP@$06$0JNCMFGIA@$0P@$0OPMGAAAA@$0BC@$0GMAHIJGF@@std@@XZ) jest już zdefiniowany w elemencie Graph.obj

0
Portalion napisał(a):
1> Graph.obj : error LNK2005: Element "void __cdecl seed_randint(int)" (?seed_randint@@YAXH@Z) jest już zdefiniowany w elemencie Graph.obj

Co w tym komunikacie jest niezrozumiałe?
Funkcję seed_randint masz zdefiniowaną dwa razy. Musisz ustalić czemu.

Jeśli definicja tej funkcji siedzi w pliku nagłówkowym, to dopisz przed nią inline.
Jeśli definicja tej funkcji siedzi w pliku źródłowym, to znajdź duplikat tej funkcji i zdecyduj się na jeden.
Są jeszcze inne możliwe powody, ale te już musisz sam ustalić.

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