【问题标题】:Compiling Link Error: OpenArena编译链接错误:OpenArena
【发布时间】:2024-01-15 06:24:01
【问题描述】:

我正在努力尝试从源代码构建 OpenArena 0.8.8。

我目前遇到此构建错误消息。

我已经安装了: sudo apt-get install vorbis-tools-dbg & sudo apt-get install vorbis-tools

我非常有信心有一个简单的解决方法,我只是太缺乏这方面的经验,不知道它是什么。谢谢!

make[1]: Entering directory `/home/reimu/Desktop/openarena-engine-source-0.8.8'

Building openarena in build/release-linux-x86_64:
  PLATFORM: linux
  ARCH: x86_64
  VERSION: 1.36
  COMPILE_PLATFORM: linux
  COMPILE_ARCH: x86_64
  CC: cc

  CFLAGS:
    -Wall
    -fno-strict-aliasing
    -Wimplicit
    -Wstrict-prototypes
    -pipe
    -DUSE_ICON
    -DNO_GZIP
    -DUSE_LOCAL_HEADERS
    -DPRODUCT_VERSION="1.36"
    -MMD
    -DNDEBUG
    -O3
    -fomit-frame-pointer
    -funroll-loops
    -falign-loops=2
    -falign-jumps=2
    -falign-functions=2
    -fstrength-reduce
    -ffast-math

  CLIENT_CFLAGS:
    -D_GNU_SOURCE=1
    -D_REENTRANT
    -I/usr/include/SDL
    -DUSE_OPENAL
    -DUSE_OPENAL_DLOPEN
    -DUSE_CURL
    -DUSE_CURL_DLOPEN
    -DUSE_CODEC_VORBIS
    -Icode/SDL12/include
    -DUSE_MUMBLE
    -DUSE_VOIP
    -DFLOATING_POINT
    -DUSE_ALLOCA
    -Icode/libspeex/include

  SERVER_CFLAGS:
    -DUSE_VOIP

  LDFLAGS:

  LIBS:
    -ldl
    -lm

  CLIENT_LIBS:
    -lSDL
    -lGL
    -lvorbisfile
    -lvorbis
    -logg
    -lrt

  Output:
    build/release-linux-x86_64/oa_ded.x86_64
    build/release-linux-x86_64/openarena.x86_64

make[2]: Entering directory `/home/reimu/Desktop/openarena-engine-source-0.8.8'
make[2]: `build/release-linux-x86_64/oa_ded.x86_64' is up to date.
LD build/release-linux-x86_64/openarena.x86_64
/usr/bin/ld: cannot find -lvorbisfile
/usr/bin/ld: cannot find -lvorbis
/usr/bin/ld: cannot find -logg
collect2: error: ld returned 1 exit status
make[2]: *** [build/release-linux-x86_64/openarena.x86_64] Error 1
make[2]: Leaving directory `/home/reimu/Desktop/openarena-engine-source-0.8.8'
make[1]: *** [targets] Error 2
make[1]: Leaving directory `/home/reimu/Desktop/openarena-engine-source-0.8.8'
make: *** [release] Error 2

【问题讨论】:

    标签: ubuntu makefile linker-errors building


    【解决方案1】:

    错误信息的关键部分是

    /usr/bin/ld: cannot find -lvorbisfile
    /usr/bin/ld: cannot find -lvorbis
    /usr/bin/ld: cannot find -logg
    

    这意味着链接器找不到libogglibvorbislibvorbisfile

    sudo apt-get install libogg-dev libvorbis-dev
    

    应该解决这个问题。

    一开始你得到一个链接器错误而不是编译器错误似乎有点奇怪,但是粗略检查 Makefile 让我相信编译的第一件事(服务器)实际上并没有使用这些库,并且它们包含在链接器调用中以保持构建系统简单。由于链接器被明确告知要查找这些库(客户端需要这些库),因此它会尽职尽责地查找并在找不到它们时抱怨。

    【讨论】: