SDL/OpenGL 프로그램 용 메이크 파일을 작성 중입니다. SDL2.0 예제에서 Makefile을 살펴보면 DHAVE_OPENGL, D_REENTRANT와 같은 컴파일러 플래그를 볼 수 있습니다. gcc의 맨 페이지에서는 아무 것도이 플래그 중 하나에 대한 정보를 찾을 수 없습니다. 인터넷상의/나의 시스템 어디에서 gcc가 지원하는 모든 플래그에 관한 문서를 찾을 수 있습니까?컴파일러 gcc 컴파일러 플래그에 대한 설명?
1
A
답변
2
-D 옵션은 특정 컴파일러 플래그를 정의하는 것이 아니라 pass macro definitions to the preprocessor을 정의하는 데 사용됩니다.
실제로 -DHAVE_OPENGL
은 소스 코드에 #define HAVE_OPENGL 1
을 갖는 것과 같습니다. 따라서 컴파일러 자체와 관련이 없으며 컴파일하는 코드와 관련이 있습니다.
Here 어떤 경우에도 GCC 옵션에 대한 포괄적 인 문서를 찾을 수 있습니다.
1
이들은 컴파일러 플래그 당이 아닙니다. -D
은 컴파일러 플래그이지만 다음은 사전 프로세서 정의입니다. 컴파일러 문서에서 의미하는 바에 대한 정보는 실제로 작성하는 동작 (예 : 컴파일 중에 실제로 포함되는 부분)에 영향을 미치므로 어떤 정보도 찾을 수 없습니다. 코드
불행하게도, 사전 처리기 토큰을 정의하는 것이 컴파일 할 소스 코드를 조사하거나 사용중인 라이브러리에서 문서화하는 경우에만 알 수 있습니다.
그러나 일반적으로 HAVE_OPENGL
을 사용하면 SDL에서 GL 관련 코드를 컴파일 할 수 있습니다.
스레드 안전성을 위해 재진입이 사용되며, _REENTRANT
은 표준 사전 프로세서 정의는 아니지만 (일부 C stdlib 구현에서 일반적으로 사용 되긴하지만) 소프트웨어가 재실행을 선택하도록 가정하는 것이 안전합니다. 가능할 때마다 응모자 버전의 기능을 제공합니다.
관련 문제
- 1. GCC 컴파일러 플래그 : -lg2c -lgfortran
- 2. gcc 컴파일러 명령에 대한 질문
- 3. GCC 컴파일러 오류
- 4. GCC 대 MSVS 컴파일러
- 5. matlab에 오래된 gcc 컴파일러
- 6. OIS GCC 컴파일러 오류
- 7. 최소 GCC C++ 컴파일러
- 8. GCC 컴파일러 문제
- 9. Android GCC 컴파일러 변경
- 10. 파이썬 컴파일러 패키지 설명
- 11. "svc"에 대한 gcc 컴파일러 프리미티브가 있습니까?
- 12. GCC 컴파일러 및 링커에 대한 질문
- 13. 컴파일러 시험 설명
- 14. QMetaObject 컴파일러 설명?
- 15. iPhone-gcc 컴파일러 설정 시도
- 16. gcc 내부 컴파일러 오류 : target_expr
- 17. std :: ignore 컴파일러 오류에 대한 설명
- 18. gcc 크로스 컴파일러 설치 방법
- 19. gcc 컴파일러 오류의 텍스트 변경
- 20. Eclipse Juno - GCC 컴파일러 pthread
- 21. gcc 컴파일러 옵션 (complex.h 포함)
- 22. 로컬 저장소 스레딩 GCC 컴파일러
- 23. boost :: integer_mask gcc 컴파일러 오류
- 24. Gcc 컴파일러 명령 및 옵션
- 25. Gcc 컴파일러 최적화 기능 인라이닝
- 26. gcc O3 최적화 플래그에 대한 의문점
- 27. LLVM 컴파일러 설정, 설명 필요
- 28. 컴파일러 버전
- 29. GNU GCC 컴파일러 오류 "메인의 다중 정의"
- 30. gcc 컴파일러 옵션 "-unsigned"는 무엇을 의미합니까?