«gcc» 태그된 질문

GCC는 GNU 컴파일러 모음입니다. Linux에서 C, C ++, Go, Fortran 및 Ada를위한 사실상의 표준 컴파일러이며 다른 많은 언어와 플랫폼도 지원합니다. 컴파일러 외에도 GCC에는 여러 플랫폼과 시스템에서 널리 사용되는 툴체인 (libc, libstdc ++, objdump, nm 등)이 있습니다.

5
gcc의 __attribute __ ((packed)) / #pragma pack이 안전하지 않습니까?
C에서 컴파일러는 각 멤버가 올바르게 정렬되도록 멤버 사이 또는 마지막 멤버 뒤에 패딩 바이트를 삽입하여 선언 된 순서대로 구조체 멤버를 배치합니다. gcc는 언어 확장을 제공하는데 __attribute__((packed)), 이는 컴파일러에게 패딩을 삽입하지 않도록 지시하여 구조체 멤버가 잘못 정렬되도록합니다. 예를 들어, 시스템에서 일반적으로 모든 int객체에 4 바이트 정렬 __attribute__((packed))이 필요한 경우 int구조체 멤버가 …
164 c  gcc  pragma-pack 

5
왜이 루프가“경고 : 반복 3u가 정의되지 않은 동작을 불러옵니다”를 생성하고 4 줄 이상을 출력합니까?
이것을 컴파일 : #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } 그리고 gcc다음과 같은 경고를 생성합니다 : warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ 부호있는 정수 오버플로가 있음을 이해합니다. 내가 얻을 수없는 …


14
Mojave로 업그레이드 한 후 Mac에서 C 프로그램을 컴파일 할 수 없습니다
터미널에서 gcc 명령을 사용하여 C 프로그램을 컴파일했지만 갑자기 Mac OS (macOS 10.14 Mojave 및 XCode 10.0)로 업데이트 한 후 메시지가 수신되기 시작했습니다. test.c:8:10: fatal error: stdio.h: No such file or directory #include <stdio.h> ^~~~~~~~~ compilation terminated. gcc가 이미 설치되어 /usr/local/bin있고 실제로 gcc가 있습니다. 다른 iMac에서 동일한 파일을 실행하려고 시도했지만 아무런 …
159 c  macos  gcc  terminal 

3
LD_LIBRARY_PATH 및 LIBRARY_PATH
간단한 C ++ 프로그램을 작성 중이며 개발 및 테스트를 위해 시스템 제공 공유 라이브러리를 최신 버전으로 일시적으로 대체하고 싶습니다. LD_LIBRARY_PATH 변수 설정을 시도했지만 링커 (ld)가 실패했습니다. / usr / bin / ld : -lyaml-cpp를 찾을 수 없습니다 ld man 페이지에 따르면 작동 할 것으로 예상했습니다. 링커는 다음 검색 경로를 사용하여 …
159 gcc  g++  ld 

3
함수 선언은 프로토 타입이 아닙니다
내가 만든 라이브러리가 있는데 mylib.c : #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } mylib.h : #include <stdio.h> extern int testlib(); 내 프로그램 에서이 라이브러리 함수를 호출하려고했습니다. myprogram.c : #include <mylib.h> int main (int argc, char *argv[]) { testlib(); return (0); } 이 프로그램을 컴파일하려고하면 다음 오류가 발생합니다. …
158 c  gcc 

9
값을 반환하지 않고 비 공백 함수의 끝에서 벗어나는 이유가 컴파일러 오류를 발생시키지 않는 이유는 무엇입니까?
몇 년 전에 이것이 기본적으로 (최소한 GCC에서) 오류를 일으키지 않는다는 것을 깨달은 이래로 나는 왜 그 이유를 궁금해 했습니까? 컴파일러 플래그를 발행하여 경고를 생성 할 수 있지만 항상 오류가 아니어야한다는 것을 알고 있습니다. 무효가 아닌 함수가 값을 반환하지 않는 것이 왜 유효합니까? 주석에서 요청한 예 : #include <stdio.h> int stringSize() …
158 c++  c  gcc  g++ 

24
C에 유용한 GCC 플래그
setting -Wall과 setting 외에도 -std=XXXC에서 사용하기에 실제로 유용하지만 덜 알려진 컴파일러 플래그는 무엇입니까? 특히 추가 경고에 관심이 있으며 우발적 인 유형 불일치를 최소화하기 위해 경고를 오류로 전환하는 경우가 있습니다.
157 c  gcc  compiler-flags 



5
향상된 GCC 6 최적화 프로그램이 실용적인 C ++ 코드를 깨뜨리는 이유는 무엇입니까?
GCC 6에는 새로운 최적화 기능이 있습니다 . this항상 null이 아니라고 가정하고이를 기반으로 최적화합니다. 값 범위 전파는 이제 C ++ 멤버 함수의 this 포인터가 널이 아닌 것으로 가정합니다. 이것은 일반적인 널 포인터 검사를 제거 하지만 부적합한 코드 기반 (예 : Qt-5, Chromium, KDevelop)도 중단 합니다. 임시 해결 방법으로 -fno-delete-null-pointer-checks를 사용할 수 …


2
gcc의 빠른 수학은 실제로 무엇을 하는가?
나는 gcc를 이해한다 --ffast-math 플래그가 플로트 op의 속도를 크게 높이고 IEEE 표준을 벗어나는 것을 알고 있지만 실제로 켜져있을 때 발생하는 정보에 대해서는 찾을 수 없습니다. 누구든지 세부 사항 중 일부를 설명하고 깃발이 켜져 있거나 꺼져 있으면 어떻게 변할 것인지에 대한 명확한 예를 제시 할 수 있습니까? 비슷한 질문에 대해 SO를 …

6
else 문에서 GCC의 __builtin_expect의 장점은 무엇입니까?
나는 #define그들이 사용하는 것을 발견했다 __builtin_expect. 설명서 는 다음과 같이 말합니다. 내장 기능 : long __builtin_expect (long exp, long c) __builtin_expect분기 예측 정보를 컴파일러에 제공하는 데 사용할 수 있습니다 . 일반적 -fprofile-arcs으로 프로그래머가 프로그램의 실제 성능을 예측하는 데 악명이 높기 때문에 실제 프로파일 피드백을 사용하는 것이 좋습니다 ( ). 그러나이 …
144 c  linux  gcc  built-in 

11
오래된 C 컴파일러를 사용하는 것이 보안 상 위험합니까?
우리는 아무도 관심을 갖지 않는 생산 시스템을 가지고 있으며 이러한 기계는 GCC 3 또는 GCC 2와 같은 고대 버전의 GCC를 실행합니다. 그리고 경영진이 더 최근으로 업그레이드하도록 설득 할 수는 없습니다. "파산하지 않으면 해결하지 마십시오"라고 말합니다. 우리는 매우 오래된 코드 기반 (80 년대로 작성 됨)을 유지하므로이 C89 코드는 이러한 컴파일러에서 잘 …
139 c  security  gcc 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.