使用 CMake 和 Visual Studio 2019 编译 GLEW?
Posted
技术标签:
【中文标题】使用 CMake 和 Visual Studio 2019 编译 GLEW?【英文标题】:Compile GLEW with CMake and Visual Studio 2019? 【发布时间】:2020-01-23 14:42:20 【问题描述】:我尝试使用 CMake 和 Visual Studio 2019 编译(构建)GLEW 源代码以获取二进制文件。在目录(磁盘)C:\
中,我创建了文件夹 GL
并在其中放置了解压缩的 glew-2.1.0
。在C:\GL\
中,我创建了文件夹build
。因为我在3个文件夹中找到了文件“CMakeLists.txt”,
-
C:\GL\glew-2.1.0\build\conan\test_package
C:\GL\glew-2.1.0\build\cmake
C:\GL\glew-2.1.0\build\cmake\testbuild
我在 CMake 的“Browse Source...”文本框中测试了所有 3 个路径。在“浏览构建...”文本框中,我粘贴了C:/GL/build
。
在所有 3 项测试中,CMake 都做出了回应:
"CMake Error: The source
"C:/GL/glew-2.1.0/build/cmake/CMakeLists.txt"
does not match the source
"C:/GL/glew-2.1.0/build/cmake/testbuild/CMakeLists.txt"
used to generate cache. Re-run cmake with a different source directory."
即“第二个路径中的文件 CMakeLists.txt 与第三个路径中的同名文件不匹配”。
【问题讨论】:
为什么不用 Visual Studio 来构建 glew? 亲爱的 fstam,请接受我对您的评论的感谢。我只知道用cmake和visual studio一起构建库源。第一步是由 CMake 处理,第二步是由 Visual Studio 处理。问候。 看看 TheCherno 的这个开源项目:github.com/TheCherno/Hazel 你可以在 youtube 上找到 TheCherno,他向你展示了如何构建 glfw 并很高兴使用 premake。我相信你可以用 glew 代替高兴并继续前进。您还可以在 youtube 上找到他,他会在其中提供详细说明。我与 TheCherno 没有任何关系,只是觉得它是一个很好的资源。 @Mr. fstam,请接受我非常感谢你给我的评论和你的建议。我对squareskittles先生的建议很满意。问候。 您可能希望将他的答案标记为解决方案,以供对该问题的功能参考。 【参考方案1】:如果您更改运行 CMake 的***源目录,您应该首先删除您的 CMake 缓存(文件 > 删除缓存在 CMake GUI 中),并从头开始运行 CMake 以避免这些错误。
您是否尝试过 GLEW Github here 上的 CMake 说明?尝试从命令行运行这些命令:
> cd C:/GL/glew-2.1.0/build
> cmake ./cmake
虽然这偏离了典型的外源构建 CMake 习惯用法,但这就是 GLEW 打算创建构建系统的方式。所以在你的系统上:
源目录:C:/GL/glew-2.1.0/build/cmake
构建目录:C:/GL/glew-2.1.0/build
注意,GLEW 构建说明警告使用 CMake 构建此 repo:
cmake 构建主要由贡献者维护。由于有大量的用例,这是在尽最大努力的基础上维护的。欢迎请求请求。
因此,按照here 推荐的典型 Windows 构建方法,您可能会有更好的运气。
【讨论】:
亲爱的 squareskittles,请接受我非常感谢您立即回答。在 C:/GL/glew-2.1.0/build 中,cmake 响应:CMake 错误:源目录“C:/GL/glew-2.1.0/build”似乎不包含 CMakeLists.txt。指定 --help 使用,或者按下 CMake GUI 上的帮助按钮。,实际上这个文件夹不包含 CMakeLists.txt 文件。在第二个路径它响应: CMake 错误:源目录“cmake ./cmake”不存在。指定 --help 使用,或者在 CMake GUI 上按帮助按钮。,确实目录 cmake ./cmake 在 glew-2.1.0 中不存在。问候。 @GeorgeTheodosiou 提供的命令旨在从命令行运行。如果需要使用 CMake GUI,你的 source 目录应该是C:/GL/glew-2.1.0/build/cmake
,你的 build 目录应该是C:/GL/glew-2.1.0/build
。希望这可以澄清事情!
亲爱的 squareskittles,请接受我非常感谢您的有益建议。你希望在我的电脑和操作系统中工作的东西。 (Windows 10)。它也适用于二进制路径 C:/GL/glew-2.1.0/ 中的任何文件夹。例如 C:/GL/glew-2.1.0/binaries。问候。
先生。 squareskittles,请接受我非常感谢您在回答中的帮助编辑(首先删除您的 CMake 缓存(CMake GUI 中的文件 > 删除缓存))。我测试成功了。我没有尝试其他建议(命令行和 Github),因为您对 CMake GUI 的建议对我来说已经足够了。问候。
@GeorgeTheodosiou 我扩展了我的答案以包含我之前的评论,包括要使用的源和构建目录。我希望你能成功!【参考方案2】:
根据 squareskittles 先生对我对他的回答的评论的回答评论,我已经成功测试,正确的答案是容纳二进制文件的文件夹应该是 C:/GL/glew-2.1.0/build 或任何文件夹您已在 glew-2.1.0 中创建。虽然这是 glew 的特殊性。使用 GLFW,您可以在其外部创建可容纳的二进制文件夹。但是,根据我已经成功测试过的 Mr.squareskittles 在他的答案中的编辑,如果您删除 Cashe(在 CMake GUI 中,单击文件 > 删除 Cashe),您可以在 glew-2.1.0 之外创建容纳二进制文件夹。问候。
【讨论】:
以上是关于使用 CMake 和 Visual Studio 2019 编译 GLEW?的主要内容,如果未能解决你的问题,请参考以下文章
与 CMake 和 Visual Studio 2010 的链接错误
CMake、Ninja 和 Visual Studio 2019 重建一切
在 Visual Studio 2017 中使用 Cmake 构建 ssh.dll
Visual Studio 2017 - 为依赖项禁用 CMake