Windows下开发OpenGL程序感觉比较头疼,总是找不到链接库,或者无法运行,可能是自己在Ubuntu系统下编写程序习惯了。不过有时候,总是需要跟Windows打交道,今天就花了点时间折腾了一下,这里记录一下,以免后面又忘了。
Windows下使用QtCreator编译libQGLViewer还是很顺利的,安装完QT开发包之后,在系统环境变量Path中添加
C:\Qt\Qt5.12.10\5.12.10\msvc2017_64\bin
和
C:\Qt\Qt5.12.10\5.12.10\msvc2017_64\lib\cmake
,其实这跟Ubuntu系统中在/bashrc
中添加export PATH=~/home/Qt5.12.10/5.12.10/xxx/bin:$PATH
和export PATH=~/home/Qt5.12.10/5.12.10/xxx/lib/cmake:$PATH
作用是一样的。
安装完QT和设置好环境变量之后,我们就可以编译libQGLViewer
了,首先从libQGLViewer
的github
仓库中下载最新的源码,然后通过QtCreator加载整个工程,然后选择构建QGLViewer
模块。这样,我们会在QGLViewer
的源码目录下看到QGLViewer2.dll
和QGLViewer2d.dll
和QGLViewer2.lib
和QGLViewer2d.lib
然后将QGLViewer2.dll
和QGLViewer2d.dll
拷贝到QT的bin目录下,前面我们已经把该目录添加系统的环境变量中了,这里把libQGLViewer
放到里面是为了让程序运行的时候找到依赖项。
后面还是希望能用CMake来构建libQGLViewer,但是感觉翻译有点麻烦,qmake的语法不太熟悉。
cmake_minimum_required(VERSION 3.5)
project(opengl02 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_BUILD_TYPE "Release")
find_package(OpenGL)
find_package(Qt5 COMPONENTS Core Gui Widgets Xml OpenGL PrintSupport)
include_directories(E:/3rdPartyCodes/libQGLViewer-master/libQGLViewer-master)
#link_directories(E:/CodeSnippets/LibQGLViewer/release)
link_directories(E:/3rdPartyCodes/libQGLViewer-master/libQGLViewer-master/QGLViewer)
add_executable(opengl02
main.cpp
viewer.cpp
viewer.h
)
target_link_libraries(opengl02
Qt5::Core
Qt5::Gui
Qt5::Widgets
Qt5::Xml
Qt5::OpenGL
Qt5::PrintSupport
opengl32
glu32
QGLViewer2
)
程序运行的最终效果: