«gcc» etiketlenmiş sorular

GCC, GNU Derleyici Koleksiyonudur. Linux'ta C, C ++, Go, Fortran ve Ada için de facto standart derleyici ve diğer birçok dili ve platformu da destekliyor. Derleyici dışında GCC, çeşitli platformlarda ve sistemlerde yaygın olarak kullanılan bir araç zincirine (libc, libstdc ++, objdump, nm vb.) Sahiptir.

5
Gcc'nin __attribute __ ((paketli)) / #pragma paketi güvensiz mi?
C'de, derleyici, her üyenin düzgün bir şekilde hizalandığından emin olmak için bir yapının üyelerini bildirildikleri sırayla, üyeler arasında veya son üyeden sonra olası dolgu baytları ile yerleştirir. gcc __attribute__((packed)), derleyiciye dolgu eklememesini söyleyen ve yapı üyelerinin yanlış hizalanmasına izin veren bir dil uzantısı sağlar . Örneğin, sistem normal olarak tüm …
164 c  gcc  pragma-pack 

5
Bu döngü neden “uyarı: yineleme 3u tanımsız davranış başlatır” üretir ve 4 satırdan fazlasını üretir?
Bunu derleme: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } ve gccaşağıdaki uyarıyı verir: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ İmzalı bir tamsayı taşması olduğunu anlıyorum. Ne elde edemiyorum neden ideğer …


14
Mojave'ye yükselttikten sonra Mac'te C programı derlenemiyor
C programlarını derlemek için terminaldeki gcc komutunu kullandım, ancak Mac işletim sistemimin (macOS 10.14 Mojave ve XCode 10.0'a) bir güncellemesinden sonra aniden, mesajı almaya başladım: test.c:8:10: fatal error: stdio.h: No such file or directory #include <stdio.h> ^~~~~~~~~ compilation terminated. Ben zaten bulabildiğim gibi gcc yüklü /usr/local/binvar ve gerçekten orada bir …
159 c  macos  gcc  terminal 

3
LD_LIBRARY_PATH ve LIBRARY_PATH
Ben basit bir C ++ programı inşa ediyorum ve geçici olarak bir sistem tarafından sağlanan paylaşılan kütüphane geliştirme ve test için, daha yeni bir sürümü ile değiştirmek istiyorum. LD_LIBRARY_PATH değişkenini ayarlamayı denedim ama linker (ld) ile başarısız oldu: / usr / bin / ld: -lyaml-cpp bulunamıyor Çalışmasını bekliyordum çünkü ld …
159 gcc  g++  ld 

3
işlev bildirimi bir prototip değil
Oluşturduğum bir kütüphanem var, mylib.c: #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } mylib.h: #include <stdio.h> extern int testlib(); Programımda şu kütüphane işlevini çağırmayı denedim: myprogram.c: #include <mylib.h> int main (int argc, char *argv[]) { testlib(); return (0); } Bu programı derlemeye çalıştığımda aşağıdaki hatayı alıyorum: Programımın içerdiği …
158 c  gcc 

9
Neden bir değer döndürmeden geçersiz bir işlevin sonundan akmak derleyici hatası üretmez?
Yıllar önce fark ettiğimden beri, bunun varsayılan olarak bir hata üretmediğini (en azından GCC'de), neden hep merak ettim? Bir uyarı oluşturmak için derleyici bayrakları verebileceğinizi anlıyorum, ancak her zaman bir hata olmamalı mı? Geçersiz olmayan bir fonksiyonun bir değer döndürmemesi neden mantıklı geliyor? Yorumlarda talep edilen bir örnek: #include <stdio.h> …
158 c++  c  gcc  g++ 

24
C için yararlı GCC bayrakları
Ayarlama -Wallve ayarlamanın ötesinde , -std=XXXC'de kullanmak için gerçekten yararlı, ancak daha az bilinen derleyici bayrakları var mı? Özellikle ek uyarılarla ve / veya bazı durumlarda yanlışlıkla tür uyumsuzluklarını en aza indirmek için uyarıları hatalara dönüştürmekle ilgileniyorum.
157 c  gcc  compiler-flags 




5
Geliştirilmiş GCC 6 optimizer neden pratik C ++ kodunu kırıyor?
GCC 6'nın yeni bir optimize edici özelliği var : Her thiszaman boş olmadığını varsayar ve buna göre optimize eder. Değer aralığı yayılımı artık C ++ üye işlevlerinin bu işaretçisinin boş olmadığını varsayar. Bu, genel boş işaretçi denetimlerini ortadan kaldırır, ancak bazı uygun olmayan kod tabanlarını da (Qt-5, Chromium, KDevelop gibi) …

2
Gcc ffast-math aslında ne yapar?
Gcc'nin --ffast-mathbayrağının float ops için hızını büyük ölçüde artırabildiğini ve IEEE standartlarının dışına çıktığını anlıyorum, ancak açıkken gerçekten neler olduğu hakkında bilgi bulamıyorum. Herkes lütfen bazı ayrıntıları açıklayabilir ve bayrak açık veya kapalı olsaydı bir şeyin nasıl değişeceğine dair net bir örnek verebilir mi? Benzer sorular için SO'yu araştırmayı denedim, …

6
Başka ifadelerde GCC'nin __builtin_expect'in avantajı nedir?
Kullandıkları bir #definealana rastladım __builtin_expect. Belgeler diyor ki: Dahili Fonksiyon: long __builtin_expect (long exp, long c) __builtin_expectDerleyiciye dal tahmin bilgileri sağlamak için kullanabilirsiniz . Genel olarak, -fprofile-arcsprogramcılar programlarının gerçekte nasıl çalıştığını tahmin etmede kötü bir şekilde kötü olduğundan, bunun için gerçek profil geri bildirimini ( ) kullanmayı tercih etmelisiniz . …
144 c  linux  gcc  built-in 

11
Eski bir C derleyicisini kullanmak bir güvenlik riski oluşturuyor mu?
Üretimde kimsenin umursamadığı bazı inşa sistemlerimiz var ve bu makineler GCC 3 veya GCC 2 gibi GCC'nin eski versiyonlarını çalıştırıyor. Ve yönetimi daha yeni bir sürüme yükseltmeye ikna edemiyorum: "kırılmazsa, düzeltmeyin" diyorlar. Çok eski bir kod tabanını (80'lerde yazılmış) koruduğumuz için, bu C89 kodu bu derleyiciler üzerinde gayet iyi derleniyor. …
139 c  security  gcc 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.