크로스 플랫폼 OpenGL 함수 로딩 라이브러리를 작성하고 있습니다. Windows에서 컴파일러 (이상한 점은 VS 과 GCC)는 한 종류의 함수 포인터 (wglGetProcAddress
의 반환 유형은 void(*)()
)를 다른 유형의 함수 포인터로 암시 적으로 변환하면 문제가없는 것 같습니다.함수 포인터를 저장할 때 GCC 경고를 표시하지 않습니다.
GCC on 그러나 그렇지 않습니다. glXGetProcAddress
은 void(*)()
을 반환하지만 항상 경고를 표시합니다. 그리고 OpenGL은 문자 그대로 수천 가지의 것들을 가지고 있기 때문에, 이것은 엄청난 진단 결과를 가져옵니다.
이 경고를 비활성화하는 방법이 있습니까? #pragma
또는 GCC가 종료되도록 코드를 재 배열하는 방법 중 하나를 사용 하시겠습니까? 나는 전체 #pragma diagnostic ignore -Wblahblah
을 시도했지만, 내가 얻었던 경고와 일치하는 "blahblah"를 찾을 수 없었다.
부수적으로, 그 중 모두를로드하는 것을 다룰 수있는 http://glew.sourceforge.net/을 확인해보십시오. – hexist
아마도 'gcc -w'입니까? –
@hexist : 예, GLEW를 대체하려고합니다. (https://bitbucket.org/alfonse/gloadgen/wiki/Home) 사용하지 마십시오. –