Compiling Link Error: OpenArena
Compiling Link Error: OpenArena
我正在努力尝试从源代码构建 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
错误信息的关键部分是
/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 的粗略检查让我相信第一个被编译的东西(服务器)实际上并没有使用这些库,并且它们包含在链接器调用中以保持构建系统简单。由于链接器被明确告知要查找这些库(客户端需要这些库),因此它会尽职尽责地查找并在找不到它们时抱怨。
我正在努力尝试从源代码构建 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
错误信息的关键部分是
/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 的粗略检查让我相信第一个被编译的东西(服务器)实际上并没有使用这些库,并且它们包含在链接器调用中以保持构建系统简单。由于链接器被明确告知要查找这些库(客户端需要这些库),因此它会尽职尽责地查找并在找不到它们时抱怨。