Używam ostatniej wersji Ubuntu, która pochodzi z wersji gcc 4.4.5. Muszę przekompilować program, który nie został napisany przeze mnie i który może być skompilowany tylko ze starszą wersją gcc, taką jak 4.0. Udało mi się skonfigurować starszą wersję i użyłem przedrostka podczas procesu instalacji, aby moja stara wersja gcc znajdowała się w /opt/gcc-4.0.1/bin. Próbowałem utworzyć dowiązanie symboliczne za pomocą ln -s /opt/gcc-4.0.1/bin/gcc gcc
. Ale kiedy wywołuję gcc -v
nadal otrzymuję wynik gcc version 4.4.5
. Aby skompilować mój program, który jest już dostępny w pliku makefile, jeśli wykonam make
, nadal będzie on korzystał z nowej wersji gcc. Jak mogę powiedzieć, aby make
użyć starej wersji?Jak korzystać z 2 różnych wersji GCC na Linux Ubuntu i zmusić MAKE do korzystania z jednego z nich
Q
Jak korzystać z 2 różnych wersji GCC na Linux Ubuntu i zmusić MAKE do korzystania z jednego z nich
8
A
Odpowiedz
18
Make używa niektórych standardowych zmiennych w celu określenia narzędzi do użycia, zmienna kompilatora C nazywa się "CC". Można ustawić zmienną cc, albo bezpośrednio w Makefile
CC=/opt/gcc-4.0.1/bin/gcc
który jest w porządku, jeśli pracujesz sam na to, czy każdy ma taką samą konfigurację. Czy można przekazać je w wierszu poleceń tak:
make CC=/opt/gcc-4.0.1/bin/gcc
trzecia opcja jest ustawiona /opt/gcc-4.0.1/bin przed wszystkim innym w swojej drodze (co jest dlaczego to nie działa Ci, bieżący katalog nie jest w ścieżce, więc dowiązanie można umieścić nie będą brane pod uwagę przy wyszukiwaniu)
export PATH=/opt/gcc-4.0.1/bin:$PATH
dla kompletności, w roztworze dowiązań symbolicznych, trzeba by powołać ./gcc
aby uzyskać prawidłowa instancja gcc, ale IMHO to prawdopodobnie nie jest najlepsze rozwiązanie.
HTH
Powiązane problemy
- 1. Jak korzystać z RVM i różnych wersji szyn
- 2. Android: Jak korzystać z różnych motywów dla różnych wersji Androida?
- 3. Jak wdrożyć wiele wersji Androida, aby korzystać z różnych bibliotek?
- 4. Jak korzystać z wersji debugowania biblioteki libc
- 5. Ustawienie java do korzystania z jednego procesora
- 6. Jak korzystać z różnych wersji węzła/npm w jednym systemie?
- 7. Uprawnienia Android SU: jak z nich korzystać?
- 8. Mam 2 wersje Pythona zainstalowane, ale cmake używa starszej wersji. Jak zmusić cmake do korzystania z nowszej wersji?
- 9. Jak zmusić gcc do korzystania z niestandardowych implementacji zaimplementowanych funkcji newlibc?
- 10. ViewBag, ViewData, TempData, Session - jak i kiedy z nich korzystać?
- 11. Łączenie z gcc i -lm nie definiuje ceil() na Ubuntu
- 12. Na PackedArray, szukając porady, jak z nich korzystać
- 13. Jak korzystać z AutoValue z Retrofit 2?
- 14. złamać i wrócić w Ruby, jak z nich korzystać?
- 15. Jak najlepiej korzystać z wersji pliku i wersji zestawu?
- 16. MongoDB: Jak korzystać z jednego schematu jako sub-dokumentów dla różnych zbiorów określonych w różnych plikach
- 17. Jak zmusić Disqus do korzystania z HTTPS we wszystkich żądaniach?
- 18. Kompilowanie jądra Linux-em z non-gcc
- 19. kompilowanie kodu źródłowego w 2 różnych wersjach gcc
- 20. Jak zmusić Railsy do korzystania z wersji Ruby (managed with rbenv), której chcę?
- 21. Jak korzystać z pdfmake w ionic 2?
- 22. Jak korzystać z AddressSanitizer w gcc?
- 23. Jak korzystać z gcc zainstalowanego w Macportach?
- 24. Co to jest Ext.namespace, jak z nich korzystać?
- 25. Jak korzystać z dwóch przycisków przesyłania i rozróżniać, który z nich został użyty do przesłania formularza?
- 26. Jak zmusić httpd do korzystania z rh-php56 z kolekcji oprogramowania red hat
- 27. Jak mogę korzystać z obu wersji Anacondy (2.7 i 3.5)?
- 28. Skompiluj C++ dla różnych wersji Ubuntu
- 29. Linux configure/make, --prefix?
- 30. Jak korzystać z lokalnych wersji zależności szybowania?
Jeśli pakiet OP jest kompilacji używa 'configure' skryptu, a następnie ustawienie' CC' jako zmiennej powłoki eksportowanego przed uruchomieniem 'configure' należy ustawić go w wygenerowanym' Makefile'. – caf
make CC =/opt/gcc-4.0.1/bin/gcc działa doskonale i jest łatwiejszym rozwiązaniem! Dzięki – blackLabrador