내 C 코드에서 전역 최적화를 설정하기 위해 GCC pragma optimize를 사용하려고합니다. GCC 버전은 우분투에서 4.4.3입니다. 기본적인 아이디어는 기능별 최적화 수준을 사용하는 것입니다. 나는 README를 확인#pragma GCC를 사용하는 C 코드 최적화
passrecovery.c: In function âmainâ:
passrecovery.c:493: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.4/README.Bugs> for instructions.
make: *** [all] Error 1
-
#pragma GCC optimize ("O3")
나는 내가 그것을 빌드 할 때
는하지만, 나는 다음과 같이 컴파일 오류를 얻으려면 내 C 코드에서 내 주요 기능 전에 컴파일 오류 를 얻을 수 .Bugs 파일, 오류에 언급했지만 이것에 관한 단서를 찾을 수 없습니다.
4.4.3 GCC에서 지원되는 #pragma optimize
은 지원되는가요?
그렇다면 코드를 최적화하기 위해이 pragma를 잘못 사용하고 있습니다.
속도에 대한 코드 최적화를위한 다른 대안 GCC 지시문은 무엇입니까?
편집 : 나는 심지어 다음 #pragma GCC optimize ("O3")
및 파일 #pragma GCC pop_options
의 말에 #pragma GCC push_options
을 시도; 같은 오류. 마지막 질문에 대한
참고 :이 최적화 지시문을 main()에서 사용하려고했습니다. 그게 문제인 것처럼 보입니다. 이 지시자는 다른 함수 (메인이 아닌)에 쓰일 경우 잘 동작합니다 ( – goldenmean
). @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@? 이 코드에서만 사용하는 라이브러리는 -lcrypt (crypt.h), string.h, stdio.h, stdlib.h, ctype.h입니다. – goldenmean
@ goldenmean : ''을 (를) 제거하려고 시도하는 것이 좋습니다. 우선 가장 먼저해야 할 일은 ... 음, 두 번째입니다. 처음 490 줄의 내용을보고 충돌을 보존하면서 무엇이 삭제 될 수 있는지 확인해야합니다. 주석을 먼저 사용한 다음 삭제할 수 있습니다. 코드 줄을 옮길 수는 없습니다.그러나 그것은 거의 일어나지 않을 것입니다. 제거 된 모든 행은 이점입니다. 프로그램이 자신의 헤더를 사용하지 않는다는 것은 인생을 단순화합니다. –