Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.0]Statyczne linkowanie - błąd "undefined reference to..."

Ostatnio zmodyfikowano 2013-07-20 09:35
Autor Wiadomość
kubawal
Temat założony przez niniejszego użytkownika
» 2013-07-18 15:44:49
Coś pokombinowałem i kierując się tym fragmentem:
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
Dodałem do Ignore Specific Default Libraries MSVCRT i msvcprt.

Jednak pojawiają się inne problemy:

1>------ Build started: Project: Samolocik2, Configuration: Release Win32 ------
1>sfml-window-s.lib(WindowImpl.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Container_base12::~_Container_base12(void)" (__imp_??1_Container_base12@std@@QAE@XZ)
1>sfml-graphics-s.lib(Shader.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::read(char *,__int64)" (__imp_?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PAD_J@Z)
1>sfml-graphics-s.lib(Shader.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::fpos<int> __thiscall std::basic_istream<char,struct std::char_traits<char> >::tellg(void)" (__imp_?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ)
1>sfml-graphics-s.lib(Shader.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::basic_istream<char,struct std::char_traits<char> > & __thiscall std::basic_istream<char,struct std::char_traits<char> >::seekg(__int64,int)" (__imp_?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@_JH@Z)
1>sfml-system-s.lib(String.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned int __cdecl std::ctype<wchar_t>::_Getcat(class std::locale::facet const * *,class std::locale const *)" (__imp_?_Getcat@?$ctype@_W@std@@SAIPAPBVfacet@locale@2@PBV42@@Z)
1>sfml-system-s.lib(String.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: wchar_t __thiscall std::ctype<wchar_t>::widen(char)const " (__imp_?widen@?$ctype@_W@std@@QBE_WD@Z)
1>sfml-system-s.lib(String.cpp.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: char __thiscall std::ctype<wchar_t>::narrow(wchar_t,char)const " (__imp_?narrow@?$ctype@_W@std@@QBED_WD@Z)
1>C:\Documents and Settings\Kubuś\moje dokumenty\visual studio 2010\Projects\Samolocik\\Release\Samolocik2.exe : fatal error LNK1120: 7 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
P-88196
kubawal
Temat założony przez niniejszego użytkownika
» 2013-07-18 21:23:02
Na serio nikt nie wie, jak to naprawić?

/edit: Chyba jedynym rozsądnym wyjściem będzie se SFML'a skompilować samemu...
P-88234
DejaVu
» 2013-07-18 22:02:38
Kurs SFML 2.0 ma opisany proces konfiguracji trybu Release, który był testowany i działa.
P-88239
hincu
» 2013-07-18 22:37:40
jesli chcesz linkowac statycznie to powinienes sam skompilowac biblioteke pod dany kompilator, takie juz sa uroki :P
P-88245
kubawal
Temat założony przez niniejszego użytkownika
» 2013-07-19 09:59:11
Faktycznie, dla VC jest napisane, żeby dodać sfml-main, czego ja nigdy nie robiłem.
Znów nic nie dało. Teraz pojawiają się niezgodności, że biblioteka std. w sfml-u ma zdefiniowany inny poziom debugowania iteratorów
(_ITERATOR_DEBUG_LEVEL)

/edit: Mam już dość, skompiluję se tą bibliotekę samemu.
P-88254
DejaVu
» 2013-07-19 11:47:11
Hehe, nawet nie wiesz ile nerwów będziesz potrzebował na kompilację samodzielną SFML-a :) Problemem nie jest kompilacja bibliotek SFML-a, tylko bibliotek od których SFML zależy.

Powinieneś zrobić nowy projekt i skonfigurować go zgodnie z kursem. Skoro wszystkim działa, to Tobie również zadziała. DLL-ki będą wówczas wymagane tylko i wyłącznie od SFML-a i to jest rozwiązanie akceptowalne oraz osiągalne małym nakładem pracy.
P-88267
kubawal
Temat założony przez niniejszego użytkownika
» 2013-07-19 14:50:24
kompilację samodzielną SFML-a
No akurat nie, skompilowało się za pierwszym razem.
Jednak problemy przy linkowaniu wciąż takie same jak w moim poście P-88196 (pierwszy na tej stronie) (przy linkowaniu biblioteki std statycznie)
P-88305
kubawal
Temat założony przez niniejszego użytkownika
» 2013-07-19 15:07:43
No dobra, ustawiłem wszystko zgodnie z kursem (na razie do kodu dałem tylko pusty main(), jak też jest w kursie). Działało.
Ustawiłem statyczne linkowanie standardowych bibliotek. Działało.
Skopiowałem mój kod. Nie działało :[ . Wciąż problemy z const static. Czyli wracam do punktu wyjścia:

1>Objects.obj : error LNK2001: unresolved external symbol "public: static class sf::Color const sf::Color::Cyan" (?Cyan@Color@sf@@2V12@B)
1>Objects.obj : error LNK2001: unresolved external symbol "public: static class sf::Color const sf::Color::White" (?White@Color@sf@@2V12@B)
1>Objects.obj : error LNK2001: unresolved external symbol "public: static class sf::RenderStates const sf::RenderStates::Default" (?Default@RenderStates@sf@@2V12@B)
1>Objects.obj : error LNK2001: unresolved external symbol "public: static class sf::Color const sf::Color::Black" (?Black@Color@sf@@2V12@B)
1>Objects.obj : error LNK2001: unresolved external symbol "public: static class sf::Color const sf::Color::Blue" (?Blue@Color@sf@@2V12@B)
1>C:\Documents and Settings\Kubuś\moje dokumenty\visual studio 2010\Projects\Samolocik\Release\Samolocik(Test2).exe : fatal error LNK1120: 5 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Czy dobrym pomysłem będzie zajrzeć ich git'a i po prostu skopiować te definicje?

/edit:
Po dodaniu brakujących definicji, działa.
Wiem jednak, że to nie jest rozwiązanie problemu, lecz łagodzenie objaw. Spróbuję w innym projekcie, czy takie błędy z const static też występują.
Jeśli tak, to trzeba o tym chyba napisać Laurentowi...
P-88307
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona