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

时间:2013-07-09 22:18:22

标签: 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。

3 个答案:

答案 0 :(得分: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/

抱歉我的英语不好

答案 1 :(得分:9)

如果您还没有安装CMake,我强烈建议安装。

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

编译boing.c(顺便说一句,这是glwf为那些不知道的人提供的一个例子) 在glfw根目录中,然后键入cmake .,然后键入make

这应该构建所有的例子。

但是,要回答如何创建一个简单的CMake文件,下面是一个用于构建boing.c的示例CMakeLists.txt:

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)

上面的目录结构是

boing_project/  
    boing.c  
    CMakeLists.txt  

然而,这并不能解释为什么你会得到所有这些错误。

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

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

答案 2 :(得分:0)

我设法使用以下标志构建glfw项目: 编译器标志:

-c -Wall

链接器标志:

-lglfw3 -lGLEW -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -ldl -lGL -lm -lpthread