fpermissive 플래그는 무엇을합니까?
-fpermissive
g ++ 컴파일러에서 플래그가 무엇을하는지 궁금합니다 . 나는 얻고있다:
오류 : 임시 [-fpermissive] 주소 취하기
-fpermissive
컴파일러에 플래그를 지정하여 해결할 수 있습니다 .
편집 : 방금 임시 주소 오류 부분을 일으키는 원인을 찾았습니다! 나는 지금 그 부분을 고칠 것입니다.
문서 에서 바로 :
-fpermissive
부적합한 코드에 대한 일부 진단을 오류에서 경고로 다운 그레이드하십시오. 따라서를 사용-fpermissive
하면 부적합한 코드를 컴파일 할 수 있습니다.
결론 : 당신이하고있는 일을 모른다면 사용하지 마십시오 !
이 -fpermissive
플래그 는 컴파일러가 실제로 오류 (일부 컴파일러에서 허용)를 경고로보고하고 언어 규칙을 준수하지 않더라도 코드를 컴파일 할 수 있도록합니다. 근본적인 문제를 해결해야합니다. 문제를 보여주는 가장 작고 컴파일 가능한 코드 샘플을 게시하십시오.
-fpermissive
부적합한 코드에 대한 일부 진단을 오류에서 경고로 다운 그레이드하십시오. 따라서를 사용-fpermissive
하면 부적합한 코드를 컴파일 할 수 있습니다.
당신은 (그것을 할에 이유 충분하기 때문에 정말 잘 정의 할 수없는 행동) 언어 표준에 의해 허용되지 않는 무언가를 작성하지만에 매핑 할 일이 한 때 일부 순진에 공급하면 실행 파일의 종류 그러면 컴파일 엔진 -fpermissive
에서이 오류 메시지가 표시되는 대신 중지합니다. 어떤 경우에는 프로그램이 원래 의도 한대로 정확하게 작동하지만 다른 솔루션을 사용하지 않는 특별한 이유가없는 한 프로그램에 의존해서는 안됩니다.
이를위한 실제 사용 사례를 원한다면 gcc의 "modern"(기침) 버전을 사용하여 아주 오래된 X Windows 버전 (예 : XA86에서 XFree86 또는 XOrg 2004)을 컴파일하십시오. 4.9.3과 같은
CFLAGS 빌드는 "-ansi"와 "-pedantic"을 모두 지정합니다. 이론적으로 이것은 "언어 사양을 약간 위반하는 경우라도 폭발"을 의미합니다. 실제로, gcc의 3.x 시리즈는 그런 종류의 물건을 많이 잡지 못했으며, CFLAGS와 BOOTSTRAPCFLAGS를 "-fpermissive"로 설정하지 않으면 4.9.3으로 빌드하면 바닥에 흡연 구멍이 생깁니다.
이 플래그를 사용하면 대부분의 C 파일이 실제로 빌드되므로 렉서가 생성하는 버전 종속 잔해로 자유롭게 이동할 수 있습니다. =]
참고 URL : https://stackoverflow.com/questions/8843818/what-does-the-fpermissive-flag-do
'development' 카테고리의 다른 글
JSON.net : 기본 생성자를 사용하지 않고 직렬화 해제하는 방법? (0) | 2020.07.24 |
---|---|
행렬 또는 데이터 프레임의 모든 행에 함수 적용 (0) | 2020.07.24 |
WPF에 Main ()이 없습니까? (0) | 2020.07.24 |
std :: array와 std :: vector의 차이점은 무엇입니까? (0) | 2020.07.24 |
레일에서 루비 (0) | 2020.07.24 |