我正试图在IBM机器上“制造”ioquake3。 但是,我一直在search“-lSDL”时出现“跳过不兼容的/libSDL.a”错误。 我在Linux上是最终的初学者,但不是一个废话! 我没有权限来安装任何库,而我们的服务器pipe理员现在一个星期没有响应。 所以,我现在一直在search/testing解决scheme。 正如消息所述,系统上的库是不兼容的。 于是,我去了Ubuntu网站,并且新下载了SDL PPC库。 我上传,解压到一个指定的文件夹。 但是,GCC不知道这些库在哪里。 所以,我发现了一个叫做“LD_LIBRARY_PATH =”〜/ minoru / cfe2 / yasirTemp / ioquake3dev / zzz / pkgs / usr / lib“的东西来告诉GCC我的库在哪里,但是每次我做”make“列表中的“导出”文件夹。
请以不同的方式提供帮助,以解决不兼容的SDL库问题。
下面是输出:
<pre>rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean[7188]% echo $LD_LIBRARY_PATH ~/minoru/cfe2/yasirTemp/ioquake3dev/zzz/pkgs/usr/lib rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean[7189]% cd ~/minoru/cfe2/yasirTemp/ioquake3dev/zzz/pkgs/usr/lib rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/zzz/pkgs/usr/lib[7190]% ls libSDL.a libSDL.la libSDL.so@ libSDLmain.a libopenal.a libopenal.so@ pkgconfig/ rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/zzz/pkgs/usr/lib[7191]%</pre> <pre>rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean[7174]% make make[1]: Entering directory `/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean' Building ioquake3 in build/release-linux-ppc64: PLATFORM: linux ARCH: ppc64 VERSION: 1.36 COMPILE_PLATFORM: linux COMPILE_ARCH: ppc64 CC: cc CFLAGS: -MMD -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes -pipe -DUSE_ICON -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DUSE_OPENAL -DUSE_CURL -maltivec -Icode/SDL12/include -m64 -DUSE_MUMBLE -DUSE_VOIP -DFLOATING_POINT -DUSE_ALLOCA -Icode/libspeex/include -DUSE_LOCAL_HEADERS -DPRODUCT_VERSION="1.36" -DNDEBUG -O3 -ffast-math -funroll-loops -fomit-frame-pointer LDFLAGS: LIBS: -ldl -lm Output: build/release-linux-ppc64/ioq3ded.ppc64 build/release-linux-ppc64/ioquake3.ppc64 build/release-linux-ppc64/baseq3/cgameppc64.so build/release-linux-ppc64/baseq3/qagameppc64.so build/release-linux-ppc64/baseq3/uippc64.so build/release-linux-ppc64/missionpack/cgameppc64.so build/release-linux-ppc64/missionpack/qagameppc64.so build/release-linux-ppc64/missionpack/uippc64.so make[2]: Entering directory `/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean' make[2]: `build/release-linux-ppc64/ioq3ded.ppc64' is up to date. LD build/release-linux-ppc64/ioquake3.ppc64 /usr/bin/ld: skipping incompatible /usr/lib/libSDL.so when searching for -lSDL /usr/bin/ld: skipping incompatible /usr/lib/libSDL.a when searching for -lSDL /usr/bin/ld: skipping incompatible /usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../libSDL.so when searching for -lSDL /usr/bin/ld: skipping incompatible /usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../libSDL.a when searching for -lSDL /usr/bin/ld: skipping incompatible /usr/lib/libSDL.so when searching for -lSDL /usr/bin/ld: skipping incompatible /usr/lib/libSDL.a when searching for -lSDL /usr/bin/ld: cannot find -lSDL collect2: ld returned 1 exit status make[2]: *** [build/release-linux-ppc64/ioquake3.ppc64] Error 1 make[2]: Leaving directory `/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean' make[1]: *** [targets] Error 2 make[1]: Leaving directory `/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean' make: *** [release] Error 2 rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean[7175]% ls</pre>
LD_LIBRARY_PATH
确定运行时共享库的搜索路径。 你想要说的是在编译时图书馆的位置。 您可以使用LDFLAGS
– -L
开关可以设置库的搜索路径: make LDFLAGS=-L/path/to/your/SDL
。
可能是由于版本不兼容等原因,您从Ubuntu中抓取的SDL二进制文件可能仍然无法正常工作。在这种情况下,我建议您自己下载并构建SDL。