我尝试构建glfw,但在windows下使用cmake进行安装似乎有些问题。
我尝试使用cmake构建glfw-library以下步骤:
git clone https://github.com/glfw/glfw
cd glfw
mkdir build-MinGW32
cd build-MinGW32
然后我用cmake生成了构建系统“MinGW Makefiles”,为它提供了glfw存储库的源目录(不是src文件夹):
$ cmake -G "MinGW Makefiles" ../
前者的结果:
- C编译器标识是GNU 6.3.0
- 检查工作C编译器:D:/MinGW/bin/gcc.exe
- 检查工作C编译器:D:/MinGW/bin/gcc.exe - 工作
- 检测C编译器ABI信息
- 检测C编译器ABI信息 - 完成
- 检测C编译功能
- 检测C编译功能 - 完成
- 寻找pthread.h
- 寻找pthread.h - 未找到
- 找到主题:TRUE
- 找不到Vulkan(缺少:VULKAN_INCLUDE_DIR)
- 找到Doxygen:C:/ Program Files / doxygen / bin / doxygen.exe(找到版本“1.8.14”)发现组件:doxygen
- 寻找dinput.h
- 寻找dinput.h - 未找到
- 寻找xinput.h
- 寻找xinput.h - 未找到
- 执行测试_GLFW_HAS_DEP
- 执行测试_GLFW_HAS_DEP - 成功
- 执行测试_GLFW_HAS_ASLR
- 执行测试_GLFW_HAS_ASLR - 成功
- 执行测试_GLFW_HAS_64ASLR
- 执行测试_GLFW_HAS_64ASLR - 失败
- 使用Win32创建窗口
- 配置完成
- 生成完成
- 构建文件已写入:D:/ Windows / Desktop / glfw / build-MinGW32
然后我使用以下命令构建:
mingw32-make
成功构建glfw后,我在构建子文件夹“glfw \ build-MinGW32 \ src”中找到了静态库“libglfw3.a”。
在使用find_package(glfw3 3.2 REQUIRED)的测试项目中,我将cmake变量“glfw3_DIR”设置为该子文件夹。 这导致以下错误:
~~~ OpenGLTutorial - v0.0 ~~~ CMake错误在 d:/Windows/Desktop/glfw/build-MinGW32/src/glfw3Config.cmake:1 (include):include无法找到加载文件:
D:/Windows/Desktop/glfw/build-MinGW32/src/glfw3Targets.cmake Call Stack (most recent call first): CMakeLists.txt:12 (find_package)
配置不完整,发生错误!也可以看看 “d:/Windows/Desktop/OpenGLTutorial/build/CMakeFiles/CMakeOutput.log”
我试图修复它:
所以我认为它与cmake无法找到“glfw3Targets.cmake”有关。我在glfw的源目录中搜索它,并在“glfw \ build-MinGW32 \ CMakeFiles \ Export \ lib \ cmake \ glfw3 \”中找到它并将其复制到库构建输出“libglfw3.a”的目录中并且找到“glfw3Config.cmake”。
但这可能不是人们应该安装glfw的方式。此外,cmake输出以下错误:
~~~ OpenGLTutorial - v0.0 ~~~配置完成CMake错误 playground / CMakeLists.txt:导入的目标“glfw”包括 不存在的路径
"D:/Windows/Desktop/include"
在其INTERFACE_INCLUDE_DIRECTORIES中。可能的原因包括:
路径已删除,重命名或移至其他位置。
安装或卸载过程未成功完成。
安装包有问题并且引用了它的文件 不提供。
如果有人可以帮我解决构建glfw的错误,我会很高兴。
如果缺少必要的信息,请说明:)