我正试图从源代码构建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
答案 0 :(得分:1)
错误消息的关键部分是
/usr/bin/ld: cannot find -lvorbisfile
/usr/bin/ld: cannot find -lvorbis
/usr/bin/ld: cannot find -logg
这意味着链接器找不到libogg
,libvorbis
和libvorbisfile
。
sudo apt-get install libogg-dev libvorbis-dev
应该解决这个问题。
起初看起来有点奇怪,你得到一个链接器错误而不是编译器错误,但粗略检查Makefile会让我相信编译的第一件事(服务器)实际上并没有使用这些库,并且它们包含在链接器调用中以保持构建系统简单。由于链接器被明确告知要查找这些库(客户端需要这些库),因此它会在找不到它们时尽职尽责地查看和抱怨。