如何使用CMake将GLEW链接到一个项目?
我们一直试图链接GLEW到我们的项目使用CMake至少3个小时没有任何成功,所以任何帮助都是接受的。
我使用的是CMake 3.1.0附带的FindGLEW. cmake
- CMakeLists.文本文件**
find_package(GLEW REQUIRED)
if (GLEW_FOUND)
include_directories($(GLEW_INCLUDE_DIRS))
endif()
- 环境变量**
我正在使用MinGW w64编译源代码,我们成功地链接了GLFW和GLM,只需将include和libs复制到各自的文件夹中,但在对GLEW进行了相同的操作后,CMake仍然找不到它。
抱歉,我在提出问题时不够清楚,我会提供任何需要的额外资料。
编辑:我已经通过指定头文件在CMake Cache文件中的位置来链接头文件,尽管我得到了对像glewInit()
这样的glew函数的未定义引用。
6条答案
按热度按时间nue99wik1#
FindGLEW等典型的CMake脚本会定义一些变量来指定项目所需的路径和文件,如果脚本不能自动识别正确的路径(通常是因为安装位置不标准,这也没关系),那么这些变量就留给你来填写了。
在命令行CMake中,你可以使用-D标志来定义和设置一个给定变量的值,其他的CMake接口,比如CMake-gui或者IDE集成,可以用其他的方式来提供这个功能。
不管你怎么做,你也可以直接修改该高速缓存(CMakeCache.txt),看看CMake在那里使用了什么,或者干脆清空缓存,你必须重新运行CMake才能让它接受你的修改。
当涉及到链接的时候,你需要告诉CMake链接哪些库,使用
link_libraries
命令和自动化脚本给你的命令。kkbh8khc2#
其他答案显然也有效,但是cmake的基于目标的风格使其更加简单,因为GLEW find模块定义了导入的目标
GLEW::GLEW
。YourTarget
是您使用add_executable
或add_library
创建的目标。无需显式添加包含目录,它们将通过链接目标自动添加。jm81lzqq3#
find_package(GLEW)
的秘密是在FindGLEW.cmake文件中与cmake一起安装。find_path
和find_library
命令在标准系统路径中查找路径。如果希望它们在用户定义的目录中查找路径,则应告诉它们。例如:参考:
a1o7rhls4#
我很难在Mac上通过命令行将Glew链接到Cmake。这可能会有帮助,但我不确定:)我将一步一步地向你介绍我所做的事情。
我从web安装了Cmake源代码。
然后我进入终端的cmake文件夹并键入
(this将在我们的操作系统平台上安装cmake命令行工具)
我有一些练习文件。我想让cmake为我生成所有这些练习文件的xcode文件(ex.triangles.cpp,shader.cpp等),所以我在练习文件文件夹内做了一个目录。
此时,Cmake假设安装所有包含正确库的xcode文件,但出现了一个错误:
然后,为了确保正确安装了GLEW及其所有库,我运行
是的,我已经安装了glew,但它没有链接。请参阅下面的警告:
然后运行以下命令:
而且我已经解决了这个错误。所以只要确保你已经链接了glew。希望这对你有帮助。
快乐编码:)
o4hqfura5#
最后我找到了一个简单而简短的CMakeLists,如果你已经在默认路径下安装了所有的东西(openGL,glfw和glew),它就可以工作。
pgccezyw6#
不管怎么说,在2023年,这对我来说是有效的,在macOS上,使用Homebrew安装GLEW,GLFW和CMake: