我已经使用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/
对不起,我的英语不好
如果你还没有,我强烈建议安装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上搜索,你就会发现很多.