You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CMake配置TGUI+raylib后端时出现链接错误求助

解决TGUI Raylib后端链接错误的方案

问题原因

你遇到的undefined reference错误表明链接器无法找到TGUI Raylib后端的实现代码。这通常是因为:

  • 预编译的TGUI库(如MSYS2提供的包)默认未包含Raylib后端
  • CMake中后端配置变量设置时机错误,导致TGUI未正确启用Raylib后端

修复步骤

1. 调整CMakeLists.txt变量顺序

必须在find_package(TGUI)之前设置后端相关变量,否则find_package无法识别你的配置。修改后的CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.10)
project(MyRaylibApp)

# 先设置TGUI后端配置,再执行find_package
set(TGUI_BACKEND RAYLIB)
set(TGUI_USE_RAYLIB TRUE)
set(TGUI_USE_SFML FALSE)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++ -static")
set(CMAKE_PREFIX_PATH "D:/msys64/mingw64")

find_package(raylib REQUIRED)
find_package(TGUI 1.6.1 REQUIRED)

add_executable(MyRaylibApp main.cpp)
set(raylib_ROOT "D:/msys64/mingw64")

target_link_libraries(MyRaylibApp PRIVATE raylib TGUI::TGUI)
set_target_properties(MyRaylibApp PROPERTIES CXX_STANDARD 11)

2. 验证TGUI库是否包含Raylib后端

如果调整CMake后仍报错,说明MSYS2提供的TGUI预编译包没有包含Raylib后端代码,需要手动编译TGUI源码:

  1. 克隆TGUI 1.6.1源码:git clone --branch 1.6.1 https://github.com/texus/TGUI.git
  2. 创建build目录并进入:mkdir TGUI/build && cd TGUI/build
  3. 用CMake配置,启用Raylib后端:
    cmake .. -DTGUI_BACKEND=RAYLIB -DTGUI_USE_RAYLIB=ON -DTGUI_USE_SFML=OFF -DCMAKE_INSTALL_PREFIX="D:/msys64/mingw64"
    
  4. 编译并安装:make && make install

3. 移除手动修改的Config.hpp

手动修改TGUI/Config.hpp会导致配置不一致,建议恢复该文件的原始内容,所有配置通过CMake变量控制即可。

内容的提问来源于stack exchange,提问作者Rayen Marino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:15:56