gpt4 book ai didi

c++ - 源代码构建的 gcc 链接错误

转载 作者:行者123 更新时间:2023-11-30 05:44:38 27 4
gpt4 key购买 nike

我有 Debian Wheezy,我需要 C++11 特性来构建我的项目。我已经从源代码编译了 gcc(仅限 c 和 c++),并使用 this 将这些库放在我的主文件夹下。问题。我还使用了回答该问题的人提供的包装脚本

$HOME/gcc/gcc-4.8.4/bin/g++ -Wl,-rpath,$HOME/gcc/gcc-4.8.4/lib32 "$@"

现在,我有一个游戏引擎,在我的项目中用于 GUI 和图形操作。它编译成 32 位就好了。我为它使用的所有外部库和引擎本身传递了 -m32 开关。此外,为了让 cmake 找到我的包装器,我在运行 cmake 时提供以下选项

cmake .. -DCMAKE_CXX_COMPILER=path/to/my/32-bit-wrapper

编译后出现如下链接错误

undefined reference to `XOpenDisplay'
undefined reference to `glBlendFunc'
undefined reference to `alGenBuffers'

起初,我以为我可能缺少 32 位开发库,所以我安装了以下软件包。

  • libgl1-mesa-dev:i386
  • libopenal-dev:i386
  • libx11-dev:i386

但无论如何我都会收到错误。那么,我该如何解决这个问题呢?如果需要,我可以提供其他信息,例如 cmake 文件等。提前谢谢你。

编辑

Cmake 文件以防出错

cmake_minimum_required(VERSION 2.8.3)

project(uwmf)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -m32 -DLINUX")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32 -DLINUX")
#set(CMAKE_CXX_COMPILER "${HOME_PATH}/devel/g++-4.8.4-32")
#set(CMAKE_C_COMPILER "${HOME_PATH}/devel/gcc-4.8.4-32")

message("${CMAKE_CXX_FLAGS}")
message("${CMAKE_C_FLAGS}")
message("${CMAKE_CXX_COMPILER}")
message("${CMAKE_C_COMPILER}")

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
set(GGE ${HOME_PATH}/devel/gorgon-3.x)
set(GRAPHICS ${HOME_PATH}/devel/graphics)

set(SOURCES
src/source.cpp
src/algorithms.h
src/cloud-gen.h
src/latex.h
src/macros.h
src/matrix.h
src/utils.h
)

include_directories(${GGE})
include_directories(${GRAPHICS})

add_executable(uwmf ${SOURCES})


target_link_libraries(uwmf ${GGE}/build/libGGE.a)

更新

ereOn 的回答起到了作用。我还必须安装 libalut-dev:i386 和链接 (-lalut) 才能成功编译。我收到许多警告消息,如下所示(可能是由于引入了同一库的额外链接)

/usr/bin/ld: Warning: type of symbol `glDrawBuffers' changed from 2 to 1 in ../devel/gorgon-3.x/build/libGGE.a(OpenGL.cpp.o)
/usr/bin/ld: Warning: type of symbol `glGetAttribLocation' changed from 2 to 1 in ../devel/gorgon-3.x/build/libGGE.a(OpenGL.cpp.o)

但是这些都不是这个问题的一部分。感谢您的帮助。

最佳答案

可能是报告缺失的符号未被您的游戏引擎库使用,因此被“优化掉”以生成更小的二进制文件。

尝试将目标可执行文件与 -lX11-lGL 显式链接,看看是否可行。

关于c++ - 源代码构建的 gcc 链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700143/

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