要在Ubuntu上安装GLFW(Graphics Library Framework),可以按照以下步骤进行操作:
1:安装依赖库:打开终端,并输入以下命令安装GLFW所需的依赖库:
sudo apt-get install cmake xorg-dev libglu1-mesa-dev
2:下载GLFW源码:访问GLFW的官方网站(https://www.glfw.org/download.html),从下载页面选择适合你需求的源码包进行下载。
3:解压源码包:使用解压工具将下载的源码包解压到合适的目录。例如,可以使用以下命令将源码包解压到~/glfw目录下:
4:创建编译目录:进入解压后的GLFW目录,并创建一个用于编译的子目录。例如,使用以下命令进入~/glfw目录,并创建名为build的子目录:
cd ~/glfw
mkdir build
wcx@wcx:~/Downloads$ ls
glfw-3.3.9 glfw-3.3.9.zip
wcx@wcx:~/Downloads$ cd glfw-3.3.9/
wcx@wcx:~/Downloads/glfw-3.3.9$ ls
CMake cmake_uninstall.cmake.in deps examples LICENSE.md src
CMakeLists.txt CONTRIBUTORS.md docs include README.md tests
5:配置编译选项:在编译目录下,使用CMake生成Makefile文件。打开终端,并进入编译目录,然后执行以下命令:
cd build
cmake …
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/thirdparty …
wcx@wcx:~/Downloads/glfw-3.3.9$ mkdir build
wcx@wcx:~/Downloads/glfw-3.3.9$ cd build/
wcx@wcx-Ubuntu:~/Desktop/thirtypart/glfw-3.3.9/build$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/thirdparty ..
-- The C compiler identification is GNU 9.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Using X11 for window creation
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/wcx/Desktop/thirtypart/glfw-3.3.9/build
6:编译安装:使用make命令编译GLFW,并安装到系统中。执行以下命令:
make
sudo make install
wcx@wcx:~/Downloads/glfw-3.3.9/build$ make -j4
Scanning dependencies of target glfw
[ 1%] Building C object src/CMakeFiles/glfw.dir/context.c.o
[ 2%] Building C object src/CMakeFiles/glfw.dir/init.c.o
[ 2%] Building C object src/CMakeFiles/glfw.dir/input.c.o
[ 3%] Building C object src/CMakeFiles/glfw.dir/monitor.c.o
[ 4%] Building C object src/CMakeFiles/glfw.dir/vulkan.c.o
[ 5%] Building C object src/CMakeFiles/glfw.dir/w
[ 97%] Building C object tests/CMakeFiles/joysticks.dir/joysticks.c.o
[ 98%] Building C object tests/CMakeFiles/joysticks.dir/__/deps/glad_gl.c.o
[100%] Linking C executable joysticks
[100%] Built target joysticks
wcx@wcx-Ubuntu:~/Desktop/thirtypart/glfw-3.3.9/build$ sudo make install
[sudo] password for wcx:
[ 14%] Built target glfw
[ 16%] Built target boing
[ 19%] Built target gears
[ 22%] Built target heightmap
[ 24%] Built target sharing
[ 28%] Built target particles
[ 31%] Built target simple
[ 33%] Built target splitview
[ 35%] Built target offscreen
[ 37%] Built target wave
[ 40%] Built target triangle-vulkan
[ 43%] Built target tearing
[ 45%] Built target title
[ 48%] Built target opacity
[ 51%] Built target clipboard
[ 55%] Built target msaa
[ 59%] Built target glfwinfo
[ 62%] Built target iconify
[ 65%] Built target reopen
[ 67%] Built target gamma
[ 70%] Built target monitors
[ 74%] Built target windows
[ 77%] Built target timeout
[ 80%] Built target inputlag
[ 83%] Built target threads
[ 86%] Built target cursor
[ 89%] Built target empty
[ 92%] Built target icon
[ 96%] Built target events
[100%] Built target joysticks
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/thirdparty/lib/libglfw3.a
-- Installing: /usr/local/thirdparty/include/GLFW
-- Installing: /usr/local/thirdparty/include/GLFW/glfw3native.h
-- Installing: /usr/local/thirdparty/include/GLFW/glfw3.h
-- Installing: /usr/local/thirdparty/lib/cmake/glfw3/glfw3Config.cmake
-- Installing: /usr/local/thirdparty/lib/cmake/glfw3/glfw3ConfigVersion.cmake
-- Installing: /usr/local/thirdparty/lib/cmake/glfw3/glfw3Targets.cmake
-- Installing: /usr/local/thirdparty/lib/cmake/glfw3/glfw3Targets-noconfig.cmake
-- Installing: /usr/local/thirdparty/lib/pkgconfig/glfw3.pc
7:验证安装:安装完成后,可以通过编写一个简单的C++程序来验证GLFW是否成功安装。创建一个名为main.cpp的文件,并输入以下代码:
glfw.cpp
#include <GLFW/glfw3.h>
int main() {
if (!glfwInit()) {
return -1;
}
glfwTerminate();
return 0;
}
保存文件后,使用以下命令编译并运行程序:
wcx@wcx:~/Desktop/gdb_test$ g++ glfw.cpp -o test -lglfw3 -lGL -lX11 -lXi -lXrandr -lXxf86vm -lXinerama -ldl -lXcursor -lrt -lm -pthread
wcx@wcx:~/Desktop/gdb_test$ ./test
编译成功即安装OK
wcx@wcx:~$ sudo find / -name libglfw* 2>/dev/null
/usr/local/lib/libglfw3.a
/home/wcx/Downloads/glfw-3.3.9/build/src/libglfw3.a