问题描述
我想做ioquake3 IBM的机器上。
但是,我一直得到了跳过不兼容/libSDL.a为-lSDL搜索时错误。
我在你的Linux初学者极致,但不是一个半途而废!
我没有权限来安装任何库,我们的服务器管理员现在不响应为一个星期左右。所以,我一直在谷歌上搜索/现在正在测试的一个解决方案。
作为该消息说,这是在系统上的库是不相容的。于是,我去了Ubuntu的网站,并下载SDL PPC库新鲜。
我上传,解压后它变成一个指定的文件夹。
然而,GCC不知道这些库。于是,我找到了一些所谓的LD_LIBRARY_PATH =〜/稔/ cfe2 / yasirTemp / ioquake3dev / ZZZ / PKGS / usr / lib目录
告诉GCC在我的库。
然而,每次我做一个做,我不知道在我的名单出口文件夹中。
请帮忙,即使有不同的方式,只是为了解决我的不兼容的SDL库的问题。
下面是输出:
<$p$p><$c$c><$p$p>rmc104:~/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean[7188]%回声$ LD_LIBRARY_PATH〜/稔/ cfe2 / yasirTemp / ioquake3dev / ZZZ / PKGS / usr / lib目录
rmc104:〜/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean [7189]%CD〜/稔/ cfe2 / yasirTemp / ioquake3dev / ZZZ / PKGS / usr / lib目录
rmc104:〜/稔/ cfe2 / yasirTemp / ioquake3dev / ZZZ / PKGS / usr / lib目录[7190]%2!
libSDL.a libSDL.la libSDL.so @ libSDLmain.a libopenal.a libopenal.so @ pkgconfig /
rmc104:〜/稔/ cfe2 / yasirTemp / ioquake3dev / ZZZ / PKGS / usr / lib目录[7191]%LT; / pre&GT;&LT; pre&GT; rmc104:〜/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean [7174]化妆%
使[1]:进入目录`/ R / home7 /亚西尔/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean&安培;#39;在建造建筑物ioquake3 /释放Linux的PPC64:
平台:Linux
ARCH:PPC64
版本:1.36
COMPILE_PLATFORM:LINUX
COMPILE_ARCH:PPC64
CC:CC CFLAGS:
-MMD
-壁
-fno严格走样
-Wimplicit
-Wstrict的原型
-管
-DUSE_ICON
-I / usr / include目录/ SDL
-D_GNU_SOURCE = 1
-D_REENTRANT
-DUSE_OPENAL
-DUSE_CURL
-maltivec
-I code / SDL12 /包括
-m64
-DUSE_MUMBLE
-DUSE_VOIP
-DFLOATING_POINT
-DUSE_ALLOCA
-I code / libspeex /包括
-DUSE_LOCAL_HEADERS
-DPRODUCT_VERSION =安培; QUOT; 1.36安培; QUOT;
-DNDEBUG
-O3
-ffast,数学
-funroll-循环
-fomit帧指针 LDFLAGS: LIBS:
-ldl
-lm 输出:
建立/释放Linux的PPC64 / ioq3ded.ppc64
建立/释放Linux的PPC64 / ioquake3.ppc64
建立/释放Linux的PPC64 / baseq3 / cgameppc64.so
建立/释放Linux的PPC64 / baseq3 / qagameppc64.so
建立/释放Linux的PPC64 / baseq3 / uippc64.so
建立/释放Linux的PPC64 / missionpack / cgameppc64.so
建立/释放Linux的PPC64 / missionpack / qagameppc64.so
建立/释放Linux的PPC64 / missionpack / uippc64.so使[2]:进入目录`/ R / home7 /亚西尔/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean&安培;#39;
使[2]:`构建/发布,Linux的PPC64 / ioq3ded.ppc64&安培;#39;已是最新。
LD编译/释放Linux的PPC64 / ioquake3.ppc64
在/ usr /斌/劳工处:为-lSDL搜索时跳过不兼容/usr/lib/libSDL.so
在/ usr /斌/劳工处:为-lSDL搜索时跳过不兼容/usr/lib/libSDL.a
在/ usr /斌/劳工处:为-lSDL搜索时跳过不兼容/usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../libSDL.so
在/ usr /斌/劳工处:为-lSDL搜索时跳过不兼容/usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../libSDL.a
在/ usr /斌/劳工处:为-lSDL搜索时跳过不兼容/usr/lib/libSDL.so
在/ usr /斌/劳工处:为-lSDL搜索时跳过不兼容/usr/lib/libSDL.a
在/ usr /斌/劳工处:找不到-lSDL
collect2:劳工处返回1退出状态
使[2]:*** [建立/释放Linux的PPC64 / ioquake3.ppc64]错误1
使[2]:离开目录`/ R / home7 /亚西尔/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean&安培;#39;
使[1]:*** [目标]错误2
使[1]:离开目录`/ R / home7 /亚西尔/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean&安培;#39;
使:*** [发行]错误2
rmc104:〜/稔/ cfe2 / yasirTemp / ioquake3dev / svfb_201110271440 / ioquake3dev_clean [7175]%LS&LT; / pre&GT;
LD_LIBRARY_PATH
确定在运行时共享库的搜索路径。你想要的是说得清图书馆在编译时。您可以使用 LDFLAGS
此 - 以 -L
开关可以设置库的搜索路径:使LDFLAGS = -L /路径/要/你/ SDL
。
这可能是你从Ubuntu的抓住了SDL二进制可能仍然无法正常工作,由于不兼容的版本等。在这种情况下,我建议下载和构建SDL自己。
I am trying to "make" ioquake3 on IBM machine.But, I kept getting the "skipping incompatible /libSDL.a when searching for -lSDL" error.I am thee ultimate beginner at Linux, but not a quitter!I have no privileges to install any libraries, and our server admin is not responding for about a week now. So, I've been googling/testing for for a solution now.As the message said, the library that is on the system is incompatible. So, I went to the Ubuntu site, and downloaded SDL PPC library freshly.I uploaded, unpacked it into a designated folder.However, GCC doesn't know where those libraries are. So, I found something called "LD_LIBRARY_PATH="~/minoru/cfe2/yasirTemp/ioquake3dev/zzz/pkgs/usr/lib" to tell GCC where my libraries are.However, everytime I do a "make", I do not my "export" folder in the list.
Please help, even with a different way, just to fix my incompatible SDL library problem.
below is the output:
<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
determines the search path for shared libraries on runtime. What you want is to say where the library is on compile time. You can use LDFLAGS
for this - with the -L
switch you can set the search path for libraries: make LDFLAGS=-L/path/to/your/SDL
.
It may be the that the SDL binary you grabbed from Ubuntu may still not work, due to an incompatible version etc. In that case I suggest downloading and building SDL yourself.
这篇关于跳过不兼容/libSDL.a为-lSDL搜索时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!