编译链接错误:OpenArena

时间:2015-01-04 04:44:29

标签: ubuntu makefile linker-errors building

我正试图从源代码构建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

1 个答案:

答案 0 :(得分: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会让我相信编译的第一件事(服务器)实际上并没有使用这些库,并且它们包含在链接器调用中以保持构建系统简单。由于链接器被明确告知要查找这些库(客户端需要这些库),因此它会在找不到它们时尽职尽责地查看和抱怨。