我如何在Linux上构建我的glfw3项目?

Jos*_*ein 5 c cmake glfw

我已经使用cmake编译了glfw3和包含的示例,并且没有问题.写我的第一个项目.作为opengl和glfw的新手,对C和cmake没有经验,我很难理解示例构建文件,甚至要在我的项目中使用哪些链接和/或编译器参数.

假设我现在只有一个文件夹和一个文件boing.c.我怎么编译它?

简单的运行gcc -lglfw3 -lm -lGL -lGLU boing.c给出了一个未定义引用的墙,从sin和atan2开始,然后是各种gl和glfw的东西.我错过了什么?

我将如何编写makefile?是否有cmake模板或样本,我只是不明白如何使用或适应?有没有人知道使用glfw3的开源项目(或更好,一个小例子或模板) - 所以我可以环顾四周?

当我想在某个时候进入多平台时,我猜cmake会是最好的.但是我如何在没有太多麻烦的情况下获得编译**的东西,所以我可以开始学习一些教程..?

我是一个使用32位Ubuntu raring的温和的菜鸟.现在就使用Vim.

小智 12

你需要像这样包含库

-lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi

#Ref:http://www.blogosfera.co.uk/2013/07/how-to-build-install-glfw-3-and-use-it-in-a-linux-project/

对不起,我的英语不好

  • 这个答案是正确的,因为它提供了我们需要链接到Linux上的其他库的信息,例如Xi和Xrandr.虽然我不确定订单,我在glfw3之后有GL,不知道是否相同.有关详细信息,请访问:http://stackoverflow.com/questions/17768008/how-to-build-install-glfw-3-and-use-it-in-a-linux-project/17772217 (3认同)

tam*_*ato 9

如果你还没有,我强烈建议安装CMake.

虽然我建议使用CMake,但可以理解的不是最简单的工具,但是比制作自己的make文件要好得多.

编译boing.c(哪个btw,是glwf为不知道的人提供的一个例子)在glfw根目录下输入cmake .然后make

这应该构建所有的例子.

但是,要回答如何创建一个简单的CMake文件,这里有一个示例CMakeLists.txt来构建boing.c:

cmake_minimum_required(VERSION 2.8)

project( BOING_PROJECT ) # this is case sensitive 

######################################
# finds OpenGL, GLU and X11
find_package(OpenGL REQUIRED)
if(NOT OPENGL_FOUND)
    message("ERROR: OpenGL not found")
endif(NOT OPENGL_FOUND)
set(GL_LIBRARY GL GLU X11)

add_executable(boing boing.c)

# linking "glfw" and not "glfw3" 
# assumes that glfw was built with BUILD_SHARED_LIBS to ON
target_link_libraries(boing glfw ${GL_LIBRARY} m)
Run Code Online (Sandbox Code Playgroud)

上面的目录结构是

boing_project/  
    boing.c  
    CMakeLists.txt  
Run Code Online (Sandbox Code Playgroud)

但是,这并没有回答为什么你得到所有这些错误.

您的错误的原因是您以错误的顺序向GCC提供了参数,尝试
gcc boing.c -lglfw3 -lm -lGL -lGLU
或更好
gcc boing.c -o boing -Wall -lglfw3 -lm -lGL -lGLU

回答你的问题:是否有任何可以使用的开源项目glfw?只需glfw在github上搜索,你就会发现很多.