找不到OpenGL的库尝试在toolchain.cmake设置OpenGL的库路径后可以找到,如何解决?(标签-Ubuntu|关键词-可执行文件)

Ubuntu16.04交叉编译visualboyadvance-m-2.1.1生成可执行文件visualboyadvance-m然后用U盘移植到S5P6818开发板上,在进行配置使出现以下问题
(有可以帮忙跑跑源码包吗)

toolchain.cmake文件如下

toolchain.cmake
# 指定目标系统
set(CMAKE_SYSTEM_NAME Linux)
# 指定目标平台
set(CMAKE_SYSTEM_PROCESSOR armv7l)

# 指定C编译器
set(CMAKE_C_COMPILER "/home/arm_game/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")
# 指定C++编译器
set(CMAKE_CXX_COMPILER "/home/arm_game/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++")

输入

cmake .. -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake

出现以下错误,找不到OpenGL的库

img


尝试在toolchain.cmake设置OpenGL的库路径后可以找到,然后可以配置

//在toolchain.cmake添加OpenGL的库路径
set(OPENGL_gl_LIBRARY "/usr/lib/x86_64-linux-gnu/libGL.so")
set(OPENGL_glx_LIBRARY "/usr/lib/x86_64-linux-gnu/libGL.so")

但在make时候出现了以下错误,这是源码的问题?不知道该怎么解决,求看看

img

打开toolchain.cmake文件;
在文件中找到“target_include_directories”和“target_link_libraries”两个指令;
在“target_include_directories”指令中添加OpenGL头文件的路径,例如:target_include_directories(your_target PRIVATE /usr/include/GL);
在“target_link_libraries”指令中添加OpenGL库文件的路径,例如:target_link_libraries(your_target PRIVATE /usr/lib/x86_64-linux-gnu/libGL.so);
保存并关闭文件。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: 配置OpenGL中的 (二)首先安装CMake 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    双击 cmake.msi,默认安装即可

  • 以下回答来自chatgpt:

    回答:

    对于解决 Ubuntu16.04 交叉编译 VisualBoyAdvance-M 后移植到 S5P6818 开发板出现的 OpenGL 库路径问题,您可以尝试以下步骤:

    1. 确定 S5P6818 开发板中的 OpenGL 库路径,一般在 /usr/lib 目录下。确保该路径在交叉编译时被正确设置。

    2. 检查 toolchain.cmake 文件中的设置是否正确。该文件位于 VisualBoyAdvance-M 的根目录下。找到以下设置并确保其与 S5P6818 开发板中的 OpenGL 路径匹配:

    set(OPENGL_gl_LIBRARY "/path/to/OpenGL/lib" CACHE PATH "OpenGL Gl library")

    set(OPENGL_glu_LIBRARY "/path/to/OpenGL/lib" CACHE PATH "OpenGL Glu library")

    1. 如果上述步骤都没有解决问题,可以尝试手动设置 LD_LIBRARY_PATH 环境变量,在运行可执行文件时将其链接到正确的 OpenGL 库。例如,如果 S5P6818 开发板中的 OpenGL 库路径是 /usr/lib,可以使用以下命令:

    export LD_LIBRARY_PATH=/usr/lib

    ./visualboyadvance-m

    对于运行 make 命令时遇到的错误,需要具体分析错误信息。可以将错误信息以 markdown 格式提供给我,例如:

    make: *** No rule to make target 'main.o', needed by 'visualboyadvance-m'.  Stop.
    

    在这种情况下,错误信息显示无法找到 main.o 文件,需要检查 Makefile 中是否正确设置了相关文件的路径。具体解决方法需要根据具体错误信息来进行。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^