QT 변수는 프로젝트에 Qt 모듈을 포함시키는 데 사용됩니다. OpenGL을 추가하면 OpenGL을 사용하는 Qt 코드가 포함 된 Qt OpenGL 모듈이 추가됩니다 (링크도 포함). Qt의 OpenGL 모듈 (libQtOpenGL.so)이 다양한 OpenGL 라이브러리를 링크하는 것보다 링크를 의미하는 "include"를 사용하는 경우. 또한 Qt 모듈에는 OpenGL 헤더가 포함 된 Qt OpenGL 모듈의 헤더가 포함되어 있습니다.
OpenGL 헤더와 OpenGL 라이브러리는 OS에서 해당 위치를 유지하는 모든 위치에 있습니다. 플랫폼에 맞는 Qt mkspec으로 인해 프로젝트의 위치를 알 수 있습니다. mkspec에는 포함 경로와 링크 경로가 이미 포함되어 있습니다.
예를 들어 지금은 Mac OS X이고 Qt mkspecs는 /usr/local/Qt4.8/mkspecs에 설치되어 있습니다. 여기에 모든 플랫폼 설명이 있으며 일반적으로 내 플랫폼에 대한 설명의 일부인 mac.conf를 찾을 수 있습니다. 그 안에 당신이 볼 수 Qt는 창조주 (qmake를가) 모든 응용 프로그램에 대한 Makefile을 생성하도록 요청하는 경우
QMAKE_INCDIR_OPENGL = /System/Library/Frameworks/OpenGL.framework/Headers \
/System/Library/Frameworks/AGL.framework/Headers/
이 정보가 사용됩니다. 이 방법으로 애플리케이션은 OpenGL의 헤더를 어디에서 찾을 수 있는지 알고 있습니다. 프로젝트는 자동으로 OpenGL 모듈을 추가 할 때만 포함 경로에 추가합니다.
...
QMAKE_INCDIR =
QMAKE_LIBDIR =
QMAKE_INCDIR_X11 = /usr/X11R6/include
QMAKE_LIBDIR_X11 = /usr/X11R6/lib
QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
QMAKE_LIBDIR_EGL =
QMAKE_INCDIR_OPENVG =
QMAKE_LIBDIR_OPENVG =
...
난 당신이 ;-)
그래서 귀하의 질문에 대답하기 위해 무엇을 의미하는지 스스로 이해할 수 있다고 생각 : 또 다른 예로서
, 이것은 리눅스 플랫폼에 대한 정의의 일부입니다 : OpenGL 라이브러리에 대한 include 경로와 링크 경로가 시스템의 어딘가에있는 mkspec 파일에 저장된 정보를 취하는 응용 프로그램 용으로 생성되는 Makefile qmake에 포함됩니다. 실제 OpenGL 헤더와 라이브러리는 시스템의 기본 위치에 있으며 이는 Qt 자체와는 아무런 관련이 없습니다. OpenGL 라이브러리를 직접 사용하거나 (필요하지 않을 수도 있음) 소스 코드에 헤더를 포함해야 할 수도 있지만 포함 경로는 mkspec 파일에서 이미 제공되어야합니다.
편집 : OpenGL을 모듈을 추가 할 때 자동으로 일어나는 봐 :
g++ -c -pipe -g -gdwarf-2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -Wall -W -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Qt4.8/mkspecs/macx-g++ -I../TextEdit -I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/usr/include -I. -I. -I../TextEdit -I. -F/Library/Frameworks -o main.o ../TextEdit/main.cpp
지금은 이런 것입니다 : 이것은 Qt는 창조주 (Mac에서) OpenGL을 모듈없이 C++ 파일을 컴파일하는 데 사용하는 명령 줄입니다 추가 후 :
g++ -c -pipe -g -gdwarf-2 -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -Wall -W -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Qt4.8/mkspecs/macx-g++ -I../TextEdit -I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers -I/usr/include/QtOpenGL -I/usr/include -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/System/Library/Frameworks/AGL.framework/Headers -I. -I. -I../TextEdit -I. -F/Library/Frameworks -o main.o ../TextEdit/main.cpp
프로젝트가 OpenGL 헤더를 찾을 위치를 알려줍니다.
귀하의 OS 및 GPU에 대한 정보를 추가하십시오. 관련성이있다. –
자동 완성을위한 선언이나 Qt에서 사용할 수있는 OpenGL을 배우기위한 선언이 필요합니까? –