gpt4 book ai didi

linux - 在 Linux 上使用 GLFW3 构建程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:23 27 4
gpt4 key购买 nike

我知道这个问题之前已经被问过很多次,但我已经尝试了好几天了,但目前的答案都没有解决我的问题。如果没有链接到这篇文章,我将不胜感激:How to build & install GLFW 3 and use it in a Linux project我看到的大多数答案都重定向到那里,但我已经彻底检查过了,但仍然遇到问题。

我正在运行 Linux Mint 17.1。

我已经下载并构建了 GLFW 3.1.1:

*Downloaded source; extracted; terminal to extract directory*
cmake .
make install

我还在 http://www.glfw.org/docs/3.0/quick.html#quick_example 下载了示例程序

我正在使用以下构建命令:

g++ -std=c++11 -c HelloGLFW.cpp
g++ HelloGLFW.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi

程序编译正常,但当我尝试链接它时出现以下错误:

//usr/local/lib/libglfw3.a(x11_init.c.o): In function `initExtensions':
x11_init.c:(.text+0x1aeb): undefined reference to `XineramaQueryExtension'
x11_init.c:(.text+0x1b05): undefined reference to `XineramaIsActive'
//usr/local/lib/libglfw3.a(x11_init.c.o): In function `_glfwCreateCursor':
x11_init.c:(.text+0x21f9): undefined reference to `XcursorImageCreate'
x11_init.c:(.text+0x22d0): undefined reference to `XcursorImageLoadCursor'
x11_init.c:(.text+0x22e0): undefined reference to `XcursorImageDestroy'
//usr/local/lib/libglfw3.a(x11_monitor.c.o): In function `_glfwPlatformGetMonitors':
x11_monitor.c:(.text+0x6e9): undefined reference to `XineramaQueryScreens'
collect2: error: ld returned 1 exit status

我也查看了 GLFW 网站上的说明,但它们似乎非常缺乏 Linux。我以前在 Linux 上运行过它,但那是一年前的事了,我无法复制它。

谁能告诉我在 Linux 上使用 GLFW3 构建程序所需的所有步骤(包括所需的所有依赖项)?

最佳答案

当使用 cmake 安装 glfw3 时,会创建一个文件 glfw3.pc。这是一个 pkg-config 文件,列出了链接所需的库。

对我来说,这个文件位于/usr/local/lib/pkgconfig

我用来成功构建程序的命令是:

g++ HelloGLFW.cpp -lglfw3 -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor -lGL -lpthread

GLFW 网站确实在 http://www.glfw.org/docs/latest/build.html#build_link_pkgconfig 列出了详细信息但如果您对 Linux 系统不是那么熟悉,则不太清楚该寻找什么。

具体说明列出了使用静态 glfw3 库编译的命令:

cc `pkg-config --cflags glfw3` -o myprog myprog.c `pkg-config --static --libs glfw3`

以及动态 glfw3 库:

cc `pkg-config --cflags glfw3` -o myprog myprog.c `pkg-config --libs glfw3`

关于linux - 在 Linux 上使用 GLFW3 构建程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30662824/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com