2011-10-28 8 views
3

IBMマシンでioquake3を「作成」しようとしています。 しかし、私は "llSDL.aを検索する際に互換性のない/libSDL.aをスキップしています"というエラーが発生し続けました。 私はLinuxでの初心者ですが、仲介者ではありません! ライブラリをインストールする権限がありません。私たちのサーバー管理者は約1週間は応答していません。だから、私は現在、ソリューションのためにグーグル/テストを行っています。 メッセージによると、システム上にあるライブラリは互換性がありません。そこで、私はUbuntuサイトに行ってSDL PPCライブラリを新しくダウンロードしました。 アップロードして指定のフォルダに解凍しました。 しかし、GCCはそれらのライブラリがどこにあるか分かりません。そこで、私は "LD_LIBRARY_PATH ="〜/ minoru/cfe2/yasirTemp/ioquake3dev/zzz/pkgs/usr/lib " というライブラリを見つけました。リストでなく、私の「輸出」フォルダ-lSDLを検索するときに互換性のない/libSDL.aをスキップする

ちょうど私の互換性のない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 [email protected] libSDLmain.a libopenal.a [email protected] 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> 

答えて

2

LD_LIBRARY_PATH判定する実行時に共有ライブラリの検索パス。あなたが望むのは、ライブラリがコンパイル時にどこにあるかです。これにはLDFLAGSを使用してください。-Lスイッチでは、ライブラリの検索パスを設定することができます:make LDFLAGS=-L/path/to/your/SDL

互換性のないバージョンなどのために、Ubuntuから取得したSDLバイナリがまだ動作しないことがあります。この場合、SDLをダウンロードして自分で構築することをおすすめします。

+0

ありがとうございました。私はあなたの提案を試みた。追加されたフラグが出力に表示されます。しかし、新しい検索パスは "検索された"ディレクトリには現れません。 .soファイルでファイルを追加する必要がありますか? – user598208

+0

はい、パスは.soファイルのパスです。 LDFLAGSを設定するとコンパイルされますか? – Antti

+0

マシンが64ビットのときにlibSDL.soが32ビットであることがわかりました。だから私はいくつかの変更を行い、新しいlibSDL.aとlibSDL.soをコンパイルし、それらを "make"フォルダにコピーしました。今、コンパイル時に検索パスに "./"パスが表示されます。しかし、私が "ファイル-L ./libSDL.so"を書くと、私は新しくコンパイルされたlibSDL.soも32ビットであり、64ビットではないことに気付きました!!どのようにしてlibSDL.soの "make"に、32ビットではなく64ビットにコンパイルするように頼むのですか? – user598208

関連する問題