我想從示例/ gui/openglwindow /中的Qt-distribution中獲取Qt示例,並使其在Windows上使用CMake進行編譯/運行。然而,編譯時,它失敗了一堆 的「錯誤LNK2019:解析外部符號__imp_glClear」如何在CMake中使用OpenGL/Angle編譯QtGui示例?
我可以修復通過手動添加C:\ Qt_install \ LIB \ libGLESv2d.lib到鏈接路徑,然而,這顯然不是CMake應該如何工作。
我CMakeLists很簡單:
PROJECT(oglwin)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
cmake_policy(SET CMP0020 NEW) # for Qt: auto-link to qtmain.lib
set(CMAKE_AUTOMOC ON)
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
SET(SOURCE
main.cpp
openglwindow.cpp
)
SET(HEADERS
openglwindow.h
)
ADD_EXECUTABLE(oglwin ${SOURCE} ${HEADERS})
TARGET_LINK_LIBRARIES(oglwin Qt5::Core Qt5::Gui)
就象我之前提到的,我的預期是,這種自動鏈接到libGLESv2.lib(或libGLESv2d.lib),因爲我使用Qt的構建用ANGLE建造。 (對於這個問題,我猜在桌面/ opengl版本上時,它應該鏈接到GL.lib [或任何系統openGL庫稱爲])。
可能對我來說,它也應該鏈接到C:\ Qt_install \ lib \ libEGLd.lib。
有一些相關主題的周圍,比如這個: https://bugreports.qt-project.org/browse/QTBUG-29132 (它說:「固定」),以及一個可以遵循,要gitorious: https://codereview.qt-project.org/#change,53857
所以基本上應該發生的事情是,QtGui自動鏈接到正確的OpenGL後端,無論這可能是什麼(桌面OpenGL,Angle/GLESv2),它在錯誤報告中說,它能夠從安裝的Qt發行版中推斷出使用哪個後端。
顯然我想要做的應該可以工作,但事實並非如此。難道我做錯了什麼?