gpt4 book ai didi

opengl - 使用glew和glfw为opengl设置cmake标志

转载 作者:行者123 更新时间:2023-12-04 14:50:33 28 4
gpt4 key购买 nike

我有这个简单的代码:

#include <stdio.h>
#include <stdlib.h>

#include <GL/glew.h>
#include <GL/glfw.h>

int main(int argc, char const* argv[] )
{
if( !glfwInit() ){
fprintf( stderr, "failed\n" );
}

return 0;
}

在我的 CmakeLists.txt 中:
PROJECT(test C)
find_package(OpenGL)
ADD_DEFINITIONS(
-std=c99
-lGL
-lGLU
-lGLEW
-lglfw
)
SET(SRC test)
ADD_EXECUTABLE(test ${SRC})

运行“cmake”。不会产生任何错误,但运行 make 会说:
test.c:(.text+0x10): undefined reference to `glfwInit'
collect2: ld returned 1 exit status
make[2]: *** [tut1] Error 1

在运行的时候:
gcc -o test test.c -std=c99 -lGL -lGLU -lGLEW -lglfw

成功编译代码,没有错误。我如何让 cmake 用我的代码运行?

另外,如果我将这些行添加到主函数中:
glfwOpenWindowHint( GLFW_FSAA_SAMPLES, 4 );
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 );
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 1 );
glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );

即使运行具有相同标志的 gcc 也会产生错误:
test.c: In function ‘main’:
test.c:14: error: ‘GLFW_OPENGL_VERSION_MAJOR’ undeclared (first use in this function)
test.c:14: error: (Each undeclared identifier is reported only once
test.c:14: error: for each function it appears in.)
test.c:15: error: ‘GLFW_OPENGL_VERSION_MINOR’ undeclared (first use in this function)
test.c:16: error: ‘GLFW_OPENGL_PROFILE’ undeclared (first use in this function)
test.c:16: error: ‘GLFW_OPENGL_CORE_PROFILE’ undeclared (first use in this function)

我正在运行基于 kubuntu 10.04、cmake v2.8、libglfw-dev、libglfw2、libglew1.5、libglew1.5-dev、glew-utils 的 linux mint。

我是 cmake、glew 和 glfw 的新手。谢谢你们的帮助!

干杯!

最佳答案

您可以在此处查看我如何将 cmake 与 glfw 一起使用的示例。
http://code.google.com/p/assembly3d/source/browse/tools/viewer/CMakeLists.txt

我使用 FindGLFW.cmake 来查找 glfw
http://code.google.com/p/assembly3d/source/browse/tools/viewer/cmake_modules/FindGLFW.cmake

另外,ubuntu 中的 glfw 版本是 2.6。
GLFW_OPENGL_VERSION_MINOR 和 GLFW_OPENGL_VERSION_MAJOR 仅适用于 glfw 2.7,我认为 OpenGL 3.x 仅适用于 glfw 2.7。

最好的事物

关于opengl - 使用glew和glfw为opengl设置cmake标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889264/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com