首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加glew和其他opengl的现代cmake方法

添加glew和其他opengl的现代cmake方法
EN

Stack Overflow用户
提问于 2022-09-01 21:11:40
回答 1查看 99关注 0票数 0

我正在创建新的edu项目。以下是项目结构:

代码语言:javascript
运行
复制
├── 3rd-party
│   ├── glew
│   ├── glfw
│   ├── CMakeList.txt
├── src
│   ├── main.cpp
├── CMakeList.txt

第三方Cmakelist看起来是这样的:

代码语言:javascript
运行
复制
# GLFW
add_subdirectory(glfw)

# GLEW
find_package(GLEW REQUIRED)

我简单地用来自github的命令安装了它们

代码语言:javascript
运行
复制
git clone https://github.com/glfw/glfw glfw
git clone https://github.com/nigels-com/glew.git glew

(因为glew在根目录中没有CMakeList,所以我不得不编写find_package而不是add_subdirectory)

我的主要Cmake是这样的:

代码语言:javascript
运行
复制
cmake_minimum_required(VERSION 3.17)
project(test)

set(CMAKE_CXX_STANDARD 17)

# Source files
add_executable(test src/main.cpp)

# dependency
add_subdirectory(3rd-party)

find_package(OpenGL)

target_link_libraries(test PUBLIC opengl32 glfw glew)

我犯了个错误:

代码语言:javascript
运行
复制
x86_64-w64-mingw32/bin/ld.exe: cannot find -lglew

链接器似乎没有找到glew库,但我不知道为什么,( IDE告诉我,Cmake本身没有错误)

我想在我的项目结构中有第三部分,这对我来说更方便。

如何纠正错误?我想说的是,我试图使CMake尽可能简单。

EN

Stack Overflow用户

回答已采纳

发布于 2022-09-02 05:38:06

更新:首先,请参阅此关于cmake和glew的问题。我在想这个问题是不是重复的.

引用用这个GitHub问题编写的图书馆维护人员的话

对于git子模块,我建议使用:Perlmint/glew-cmake,而不是这个上游存储库。 这里的长期策略是维护GLEW代码生成器的历史,而不是生成代码的相应历史。一般的建议是使用当前的GLEW版本,而不是使用正在进行中的主分支。 我确实很欣赏这种安排是过时的,但事实上格鲁已经存在了很长时间。

请注意你的评论

因为glew根目录中没有CMakeList

它确实有一个CMakeLists.txt文件:/build/cmake/。您可以找到关于它的位置和库这里这里情况的讨论。

至于你眼前的问题,请在评论部分引用你的话:

如果我把GLEW::glew改为libglew_static,一切都很好!

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73575450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档