目录
- 先决条件 [1]
- 下载raylib
- 方式一
- 方式二
- 构建 [1]
- 使用
- 终端中使用
- Clion中使用
先决条件 [1]
ubuntu系统上需要先安装GCC, make(或者cmake)和git (下载raylib)
执行下面的命令可以安装GCC,make,cmake,git
sudo apt install build-essential git #build-essential是一套工具集,包括GCC和make
sudo apt install cmake
一些额外的工具,可以不用管这些是什么,直接复制脚本执行安装
sudo apt install libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev
下载raylib
方式一
通过git下载
git clone https://github.com/raysan5/raylib.git raylib #将克隆的raylib源文件放到raylib目录下
方式二
如果你的系统是桌面版的,可以访问网址 raylib github源码,按下图点击code,选择Download ZIP下载源码。用解压工具将zip文件解压,解压后的文件重命名为raylib。这种方式和第一种没有本质区别,一个是在终端上操作,另一个是图形界面下操作。
构建 [1]
这里介绍的是使用cmake构建raylib。
cd raylib #进入存放源文件的raylib目录
mkdir build && cd build #创建build目录并进入该目录
cmake -DBUILD_SHARED_LIBS=ON .. #构建项目,选项BUILD_SHARED_LIBS=ON表示构建共享库, ..表示上一级目录
make
sudo make install #将项目安装到ubuntu系统中,一般.h文件被放到/usr/local/include目录下,.so文件被放到/usr/local/lib目录下。
使用
终端中使用
新建一个.c源文件,这里以main.c为例,main.c的文件内容如下[2]
#include "raylib.h" //包含raylib库的头文件int main(void)
{InitWindow(800, 450, "raylib [core] example - basic window");//调用raylib库的InitWindow函数while (!WindowShouldClose())//调用raylib库的WindowShouldClose函数{BeginDrawing();//调用raylib库的BeginDrawing函数ClearBackground(RAYWHITE);//调用raylib库的ClearBackground函数DrawText("Congrats! You created your first window!", 190, 200, 20, LIGHTGRAY);//调用raylib库的DrawText函数EndDrawing();//调用raylib库的EndDrawing函数}CloseWindow();//调用raylib库的CloseWindow函数return 0;
}
在终端中调用下面的命令产生main可执行文件
gcc main.c -L/usr/local/lib -lraylib -o main
#-L选项指定链接路径(link path), -l选项指定链接文件名, gcc会在文件名加上前缀lib、后缀.so, 所以文件名最终为libraylib.so。
执行可执行文件main获得程序运行结果
./main
下面是main.c执行后生成的图形界面,其标题为InitWindow函数第三个参数的值,内容为DrawText函数第一个参数的值
Clion中使用
在clion中可以使用cmake配置raylib所在库的位置。在与main.c同级目录的CMakeLists.txt文件中加入以下代码[3]
cmake_minimum_required(VERSION 3.24)set(CMAKE_C_STANDARD 11)project(main C)#前面的内容可以不用关注,从这里开始
set(INCLUDE_DIR /usr/local/include) #定义INCLUDE_DIR变量,该变量保存include路径set(LIBRARY_DIR /usr/local/lib) #定义LIBRARY_DIR 变量,该变量保存lib路径include_directories(${INCLUDE_DIR}) #加载include路径link_directories(${LIBRARY_DIR}) #加载lib路径add_executable(main main.c) #编译main.ctarget_link_libraries (main libraylib.so ) #链接libraylib.so到编译后的main中
编译运行得到同样的结果。
下面是参考文章
[1]https://github.com/raysan5/raylib/wiki/Working-on-GNU-Linux
[2]https://github.com/raysan5/raylib/tree/master#basic-example
[3]https://blog.csdn.net/why2214/article/details/127264619