Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

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

Featured Replies

Rozwiązane przez HarQQ

  • Odpowiedzi 37
  • Wyświetleń 2,3 tys.
  • Dodano
  • Ostatniej odpowiedzi

Top użytkownicy w tym temacie

Najbardziej popularny wpis

  • 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

  • @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. 

  • Wrzucasz zawartość folderu boost do include/boost

Opublikowane grafiki

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.

 

CKod został skopiowany
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.

 

CKod został skopiowany
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 😞

 

MakefileNiedostępne

Opublikowano

W pliku MAKEFILE dla db. 

 

Problem z kompilacją game dotyczy tego problemu:

CKod został skopiowany
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:

 

CKod został skopiowany
pkg install boost-all

 

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

Opublikowano
  • Autor

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

Bez tytułu.png

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
CKod został skopiowany
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ć:

CKod został skopiowany
gmake dep

 

Opublikowano
  • Autor
W dniu 10.11.2023 o 18:38, Sevence napisał(a):
CKod został skopiowany
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ć:

CKod został skopiowany
gmake dep

 

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

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

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:

CKod został skopiowany
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:

 

CKod został skopiowany
#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

Co nie wiesz?

 

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

CKod został skopiowany
#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:

CKod został skopiowany
#include <float.h>#include <unordered_map>#include <unordered_set>

 

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

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.