- 下载xmake, 并安装.(下载的是安装文件,直接安装到Windows下, 重启了一下电脑,否则环境变量不生效).
下载地址 : https://github.com/xmake-io/xmake/releases/tag/v2.5.2 - 打开命令行,输入xmake --help, 有结果显示, 说明安装成功了.
- 下载imgui源码 : https://github.com/ocornut/imgui
- 新建一个目录,在这个目录下执行xmake create -l c++ -P ./imguiGLFW, 这样就创建了一个工程.
- 将imgui/src下的源码拷到imguiGLFW/src下。
- 将imgui/src/backends下的imgui_impl_glfw.*和imgui_impl_opengl3.*拷到imguiGLFW/src下.
- 将example/example_glfw_opengl3下的main.cpp拷贝到imguiGLFW/src下。
- 此时在imguiGLFW目录下执行xmake进行编译,必然会错误, 因为需要glfw、glew、opengl这三个库的支持,如果没有配置,那是错误一大片啊
glfw 需要下载自行编译, 下载地址:https://www.glfw.org/
glew 是下载的编译好的库, 下载地址:https://www.opengl.org/sdk/libs/GLEW/
opengl库就不用下载了,Windows系统安装后就有了。 - 编译glfw的时候一定要注意,我这边是用CMake生成了VS2019的工程,然后编译生成了glfw3.lib, 使用的时候报了很多错误,
比如: glfw3.lib(input.obj) : error link2019:无法解析的外部符号xxxxxxxxxxxxx
需要在VS2019的工程中将glfw工程右键=》属性=》C/C++=》代码生成=》运行库=》多线程调试DLL(/MTD)
这里对MTd、/MT、/MD、/MDd 做一下简单说明:
MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库
MTd:mutithread+debug,多线程调试版,连接LIBCMTD.lib库
MD:MT+DLL,多线程动态库,连接MSVCRT.lib库,这是个导入库,对应动态库为MSVCRT.dll
MDd: MT+DLL+debug,多线程动态调试库,连接MSVCRTD.lib库,对应动态库为MSVCRTD.dll
- 配置glfw和glew的库位置,和头文件位置,此时执行xmake编译,还是会有问题的,需要windows相关的库支持
#pragma comment(lib, "OpenGL32.lib")
#pragma comment(lib, "User32.lib")
#pragma comment(lib, "Gdi32.lib")
#pragma comment(lib, "shell32.lib") - 在main.cpp文件中加入:
- 执行xmake进行编译, 此时如果没有意外会编译连接成功,但是运行不了,我们需要将需要的.dll文件拷贝到imguiDemo文件所在的目录下.
- 执行xmake run imguiDemo.exe ,程序会正常运行。
此文纯属记录操作步骤,如果不准确之处,请多多指教。