我一直在尝试遵循供应商的教程:CMake-Tutorial,查看文档:Cmake-Documentation,尽可能通过YouTube上的资源进行自我教育,但我真的很难为环境设置工作使用OpenGL.在使用了Glitter样板和open.gl和learnopengl.com上的教程时,我已经决定了解构建过程太重要了,不需要调查.
在我的调查中,我遇到了CMake错误"找不到源文件",下面会更详细地显示.问题似乎来自"add_executable".
这里有一个类似的问题:CMake - 找不到文件.解决方案涉及确保为每个变量正确设置$ {PROJECT_SOURCE_DIR},我相信我已经完成了.
我的文件结构:
+ infuriating_project
+ bin // post compile results
+ src // my humble code
+ deps // external code
+glew
+ include
+ src
+glfw
+ include
+ src
+glm
+soil
+ lib
+ src
Run Code Online (Sandbox Code Playgroud)
我的CMakeLists.txt:
cmake_minimum_required (VERSION 3.0)
# Version Information ---------------------------------------------------------
project (openGL-practice)
SET (VERSION_MAJOR 1)
SET (VERSION_MINOR 0)
SET (VERSION_FEATURE 0)
SET (VERSION_PATCH 0)
SET (VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
SET (VERSION "${VERSION}.${VERSION_FEATURE}.${VERSION_PATCH}")
MESSAGE ("Version: ${VERSION}")
# …Run Code Online (Sandbox Code Playgroud) 我正在使用 glfw、glad 和 glm 修补 OpenGL。在我正在使用的教程之一中,他们演示了 glm 的一些简单用法,如下所示:
glm::vec4 vec(1.0f, 0.0f, 0.0f, 1.0f);
glm::mat4 trans;
trans = glm::translate(trans, glm::vec3(1.0f, 1.0f, 0.0f));
vec = trans * vec;
std::cout << vec.x << vec.y << vec.z << std::endl;
Run Code Online (Sandbox Code Playgroud)
当我编译并运行这段代码时,我得到垃圾值(通常是 NAN)。该教程特别指出,实例化
glm::mat4 trans;
Run Code Online (Sandbox Code Playgroud)
默认情况下会为变量“trans”创建一个单位矩阵。我想也许这就是问题所在,尽管我已经验证 glm 默认情况下确实会这样做。
如果它有帮助,您可以在第 308 行找到整个源文件。非常感谢您的宝贵时间!