Skocz do zawartości

Problem z kompilacją game 'clang++: error: unsupported option -mcpu='

Rozwiązane przez HarQQ

Przejdź do rozwiązania

Featured Replies

Opublikowano

Cześć,

 

Zauważyłem, że napotykasz problem związany z flagą -mcpu= podczas kompilacji za pomocą clang++.

Błąd, który otrzymujesz, wskazuje na brak wsparcia dla tej opcji kompilatora dla Twojego docelowego systemu i386-portbld-freebsd12.4.

 

clang++: error: unsupported option '-mcpu=' for target 'i386-portbld-freebsd12.4'

 

 

W celu rozwiązania problemu. spróbuj zamienić flagę -mcpu na -march=

Aby to zrobić przejdź do źródła odszukaj pliku MAKEFILE i zamień tą flagę na -march=

 

Mam nadzieję, że te sugestie pomogą Ci rozwiązać problem.

Jeśli nadal występują trudności, proszę o podanie dodatkowych szczegółów.

Opublikowano
  • Autor
  W dniu 10.11.2023 o 17:05, Sevence napisał(a):

Cześć,

 

Zauważyłem, że napotykasz problem związany z flagą -mcpu= podczas kompilacji za pomocą clang++.

Błąd, który otrzymujesz, wskazuje na brak wsparcia dla tej opcji kompilatora dla Twojego docelowego systemu i386-portbld-freebsd12.4.

 

clang++: error: unsupported option '-mcpu=' for target 'i386-portbld-freebsd12.4'

 

 

W celu rozwiązania problemu. spróbuj zamienić flagę -mcpu na -march=

Aby to zrobić przejdź do źródła odszukaj pliku MAKEFILE i zamień tą flagę na -march=

 

Mam nadzieję, że te sugestie pomogą Ci rozwiązać problem.

Jeśli nadal występują trudności, proszę o podanie dodatkowych szczegółów.

Nie mam nic z -mcpu w pliku makefile 😞

 

Makefile 5.15 kB · 4 pobrania

Opublikowano

W pliku MAKEFILE dla db. 

 

Problem z kompilacją game dotyczy tego problemu:

gmake: *** No rule to make target '/usr/local/include/boost/container_hash/detail/hash_float.hpp', needed by 'OBJDIR/BattleArena.o'.  Stop.

 

Brakuje tego pliku z biblioteki boost, który jest wymagany do skompilowania pliku. 

Aby rozwiązać ten problem, zainstaluj boost library c++ możesz to zrobić za pomocą polecenia:

 

pkg install boost-all

 

Ewentualnie ręcznie pobierasz z oficjalnej strony Boost Downloads i wrzucasz do /usr/locale/include

Opublikowano

@HarQQ Nie pisz tylu postów pod rząd, możesz edytować wcześniejszy. Co do problemu z game odpisałem Ci już na temat tego problemu oraz jego rozwiązania, nic tu nowego się nie pojawiło. 

Opublikowano
  • Autor

Wgrywam manualnie boost-all, tak wygląda .rar, wszystko wrzucić do tego .../include/?

Bez tytułu.png

Opublikowano

Wrzucasz zawartość folderu boost do include/boost

Opublikowano
  • Autor

gmake: *** No rule to make target '/usr/local/include/boost/container_hash/detail/hash_float.hpp', needed by 'OBJDIR/BattleArena.o'.  Stop.
  pomimo wgrania boost manualnie.

Opublikowano
gmake: *** No rule to make target '/usr/local/include/boost/container_hash/detail/hash_float.hpp', needed by 'OBJDIR/BattleArena.o'.  Stop.

 

Nadal nie masz tego pliku. Możesz go ręcznie dodać, wyszukaj go w google hash_fload.cpp boost c++ i Ci wyskoczy. 

Dlaczego nadal go nie masz pomimo wrzucenia boost? Możliwe, że nowsze wersje boost nie mają tego pliku po prostu. 

Spróbuj wgrać starszą wersję boost np. 1.70

 

Po wrzuceniu przed kompilacją spróbuj wpisać:

gmake dep

 

Opublikowano
  • Autor
  W dniu 10.11.2023 o 18:38, Sevence napisał(a):
gmake: *** No rule to make target '/usr/local/include/boost/container_hash/detail/hash_float.hpp', needed by 'OBJDIR/BattleArena.o'.  Stop.

 

Nadal nie masz tego pliku. Możesz go ręcznie dodać, wyszukaj go w google hash_fload.cpp boost c++ i Ci wyskoczy. 

Dlaczego nadal go nie masz pomimo wrzucenia boost? Możliwe, że nowsze wersje boost nie mają tego pliku po prostu. 

Spróbuj wgrać starszą wersję boost np. 1.70

 

Po wrzuceniu przed kompilacją spróbuj wpisać:

gmake dep

 

Czyli na pewno sam folder boost wrzucać, nic więcej z tego .rar?

Opublikowano
  • Autor

gmake dep: ***  No rule to make target 'dep'.  Stop.

- Mam wgrane boost 1.70

 

Edit 1:ale moment bo game coś robi chyba.

 

Edit 2: Niestety, padło

GAME_ERROR_LOG.txt 4.99 kB · 4 pobrania

Edytowane przez HarQQ

Opublikowano

Jaką wersją kompilatora używasz? Co to za źródło w ogóle? Nie jest przystosowane do nowoczesnych kompilatorów wcale... spróbuj go z GCC 4.8 skompilować przykładowo. Nowsze kompilatory nie używają już funkcji z TR1 są zintegrowane bezpośrednio do głównego standardu C++.  Tak więc, jeśli korzystasz z clang w nowszych wersjach nie używaj funkcji z TR1. Masz dwie opcje, albo zaktualizuj kod źródła albo użyj starszego kompilatora. 

Opublikowano
  • Autor
  W dniu 10.11.2023 o 20:13, Sevence napisał(a):

Jaką wersją kompilatora używasz? Co to za źródło w ogóle? Nie jest przystosowane do nowoczesnych kompilatorów wcale... spróbuj go z GCC 4.8 skompilować przykładowo. Nowsze kompilatory nie używają już funkcji z TR1 są zintegrowane bezpośrednio do głównego standardu C++.  Tak więc, jeśli korzystasz z clang w nowszych wersjach nie używaj funkcji z TR1. Masz dwie opcje, albo zaktualizuj kod źródła albo użyj starszego kompilatora. 

Skradzione ze zmarłego forum, rzekomo pod terenzo od youtubera na P. xD

 

Edit: mozna jakis link do innego?

Edytowane przez HarQQ

Opublikowano
  • Autor
  W dniu 10.11.2023 o 20:16, Sevence napisał(a):

 

I mam pobrać to wszystko i wrzucic na vps, tak? Czy tylko E-core?

Opublikowano

Tylko te pliki nie mają wielu rzeczy standardowych musiałbyś użyć tylko entry-core i entry-bin klienta i pliki serwerowe z bazą użyj od terenzo. 

 

Ewentualnie, próbuj aktualizować kod to nowszego standardu:

In file included from arena.cpp:1:
./stdafx.h:26:10: fatal error: 'tr1/unordered_map' file not found
   26 | #include <tr1/unordered_map>

 

Tu jak wspominałem wejdź w plik stdafx.h i zamiast tr1/unordered_map użyj po prostu tak:

 

#include <unordered_map>
#include <unordered_set>

 

Opublikowano
  • Autor

Czyli entry-core i entry-bin wrzucic sobie, reszta może zostać jak jest od terenzo, dobrze zrozumiałem?

 

Edit: i jak usunac jakoś mądrze stare, zeby sie nie bawic, czy musze ręcznie xD

Edytowane przez HarQQ

Opublikowano

W zasadzie to będę problemy bo w entry-core i bin są systemy, które wymagają odpowiednich zmian w kliencie więc to nie przejdzie musiałbyś w 100% użyć wszystkiego z entry. 

Jednak mają one braki, nie będzie działać wiele rzeczy, tak więc po prostu próbuj aktualizować aktualny kod do nowszego standardu lub użyj niższej wersji kompilatora. 

Opublikowano
  • Autor

Kompilator w moim przypadku to gmake, tak?

Edytowane przez HarQQ

Opublikowano

Nie, kompilator masz określony w pliku Makefile w twoim przypadku to clang++-devel. Spróbuj po prostu zrobić te zmiany w kodzie, które Ci podałem wyżej i skompilować ponownie. 

Opublikowano
  • Autor

Nie no, nie wiem xD Dziadostwo...

Opublikowano

Co nie wiesz?

 

Wejdź w plik game -> stdafx.h będziesz mieć coś takiego lub coś podobnego:

#ifdef __GNUC__
#	include <float.h>
#	if defined(CXX11_ENABLED) || defined(__clang__)
#		include <unordered_map>
#		include <unordered_set>
#		define TR1_NS std
#		define TR1_NS_BEGIN namespace TR1_NS {
#		define TR1_NS_END }
#		define TR1_NS_BLOCK(x) namespace TR1_NS { x }
#	else
#		include <tr1/unordered_map>
#		include <tr1/unordered_set>
#		define TR1_NS std::tr1
#		define TR1_NS_BEGIN namespace std { namespace tr1 {
#		define TR1_NS_END } }
#		define TR1_NS_BLOCK(x) namespace std { namespace tr1 { x } }
#	endif
#else
#	include <boost/unordered_map.hpp>
#	include <boost/unordered_set.hpp>
#	define TR1_NS boost
#	define TR1_NS_BEGIN namespace TR1_NS {
#	define TR1_NS_END }
#	define TR1_NS_BLOCK(x) namespace TR1_NS { x }
#	define isdigit iswdigit
#	define isspace iswspace
#endif

 

Zmieniasz na:

#include <float.h>
#include <unordered_map>
#include <unordered_set>

 

Opublikowano
DragonSoul.cpp:385:11: error: cannot initialize return object of type 'bool' with an rvalue of type 'std::nullptr_t'
  385 |                         return NULL;

 

Masz teraz taki błąd, przejdź do pliku DragonSoul.cpp

 

Znajdź

return NULL;

 

Zamień na

return 0

 

Linia 385

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.