Pytania otagowane jako gcc

GCC to kolekcja kompilatorów GNU. Jest to de facto standardowy kompilator dla C, C ++, Go, Fortran i Ady w systemie Linux i obsługuje również wiele innych języków i platform. Oprócz kompilatora GCC ma zestaw narzędzi (libc, libstdc ++, objdump, nm itp.), Które są szeroko stosowane na kilku platformach i systemach.

6
Jak zainstalować GCC kawałek po kawałku z GMP, MPFR, MPC, ELF, bez współdzielonych bibliotek?
Jak zainstalować GCC (kolekcję kompilatorów GNU) kawałek po kawałku, używając aktualnej wersji, używając poprawnych wersji zależności, nie używając menedżera pakietów (jak yum, rpm, apt, dpkg) i nie używając bibliotek współdzielonych? Typowi programiści prawdopodobnie będą chcieli zainstalować GCC w typowy sposób, użyj swojego menedżera pakietów (yum, rpm, apt, dpkg, port, brew, …
115 gcc  elf  gmp  mpfr  mpc 

2
Czy komitet normalizacyjny C ++ ma zamiar, aby w C ++ 11 unordered_map niszczył to, co wstawia?
Właśnie straciłem trzy dni mojego życia, szukając bardzo dziwnego błędu, w którym unordered_map :: insert () niszczy wstawioną zmienną. To wysoce nieoczywiste zachowanie występuje tylko w najnowszych kompilatorach: stwierdziłem, że Clang 3.2-3.4 i GCC 4.8 są jedynymi kompilatorami, które zademonstrowały tę „funkcję”. Oto trochę zredukowany kod z mojej głównej bazy …
114 c++  gcc  c++11  clang  standards 

17
Problemy z kompilacją: nie można znaleźć crt1.o
Mam wirtualny system Debian, którego używam do tworzenia. Dzisiaj chciałem spróbować llvm / clang. Po zainstalowaniu clang nie mogę skompilować moich starych projektów c (z gcc). To jest błąd: ... /usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory collect2: ld …
114 gcc  clang  ld 

4
Czy cout jest zsynchronizowany / bezpieczny dla wątków?
Generalnie zakładam, że strumienie nie są zsynchronizowane, to do użytkownika należy odpowiednie zablokowanie. Czy jednak takie rzeczy jak coutbiblioteka standardowa są traktowane w specjalny sposób? Oznacza to, że jeśli wiele wątków pisze do, coutczy mogą uszkodzić coutobiekt? Rozumiem, że nawet po zsynchronizowaniu nadal otrzymujesz wyjście z przeplotem losowo, ale czy …
112 c++  gcc  c++11 

5
Gdzie zdefiniowano PATH_MAX w systemie Linux?
Który plik nagłówkowy powinienem wywołać, #includeaby móc używać PATH_MAX jako int do określania rozmiaru ciągu? Chcę móc zadeklarować: char *current_path[PATH_MAX]; Ale kiedy to robię, mój kompilator (Clang / LLVM w systemie Linux) wyświetla następujący błąd: recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX' char *current_path[PATH_MAX]; ^ Próbowałem przeprowadzić wyszukiwanie w Google, …
112 c  linux  gcc  include  clang 



3
Dlaczego dwa pliki binarne programów ze zmienionymi tylko komentarzami nie zgadzają się dokładnie w gcc?
Stworzyłem dwa programy w C. Program 1 int main() { } Program 2 int main() { //Some Harmless comments } AFAIK, podczas kompilacji kompilator (gcc) powinien ignorować komentarze i zbędne białe znaki, a zatem dane wyjściowe muszą być podobne. Ale kiedy sprawdziłem sumy md5 wyjściowych plików binarnych, nie pasują. Próbowałem …

11
Jak usunąć nieużywane symbole C / C ++ za pomocą GCC i ld?
Muszę poważnie zoptymalizować rozmiar mojego pliku wykonywalnego ( ARMprogramowanie) i zauważyłem, że w moim obecnym schemacie kompilacji ( gcc+ ld) nieużywane symbole nie są usuwane. Użycie arm-strip --strip-unneededdla wynikowych plików wykonywalnych / bibliotek nie zmienia rozmiaru wyjściowego pliku wykonywalnego (nie mam pojęcia dlaczego, może po prostu nie może) . Jaki …
110 c++  c  gcc  ld  strip 




11
Błąd kompilacji GCC z> 2 GB kodu
Mam ogromną liczbę funkcji w sumie około 2,8 GB kodu wynikowego (niestety nie ma sposobu obejścia, obliczenia naukowe ...) Kiedy próbuję je połączyć, otrzymuję (oczekiwane) relocation truncated to fit: R_X86_64_32Sbłędy, które miałem nadzieję ominąć, określając flagę kompilatora -mcmodel=medium. Wszystkie biblioteki połączone dodatkowo, nad którymi mam kontrolę, są kompilowane z -fpicflagą. …
108 c++  c  gcc  compiler-errors 


3
Jak zapobiec optymalizacji niektórych instrukcji w C przez gcc?
Aby zabrudzić stronę (włączając brudny bit we wpisie tablicy stron), dotykam pierwszych bajtów strony w ten sposób: pageptr[0] = pageptr[0]; Ale w praktyce gcc zignoruje stwierdzenie przez eliminację martwego magazynu. Aby zapobiec optymalizacji przez gcc, ponownie piszę instrukcję w następujący sposób: volatile int tmp; tmp = pageptr[0]; pageptr[0] = tmp; …
107 c  gcc 

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.