本文介绍了跳过不兼容/libSDL.a为-lSDL搜索时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想做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&#39;

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=&quot;1.36&quot;
    -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&#39;
make[2]: `build/release-linux-ppc64/ioq3ded.ppc64&#39; 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&#39;
make[1]: *** [targets] Error 2
make[1]: Leaving directory `/r/home7/yasir/minoru/cfe2/yasirTemp/ioquake3dev/svfb_201110271440/ioquake3dev_clean&#39;
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搜索时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-18 09:08