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'
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>
ありがとうございました。私はあなたの提案を試みた。追加されたフラグが出力に表示されます。しかし、新しい検索パスは "検索された"ディレクトリには現れません。 .soファイルでファイルを追加する必要がありますか? – user598208
はい、パスは.soファイルのパスです。 LDFLAGSを設定するとコンパイルされますか? – Antti
マシンが64ビットのときにlibSDL.soが32ビットであることがわかりました。だから私はいくつかの変更を行い、新しいlibSDL.aとlibSDL.soをコンパイルし、それらを "make"フォルダにコピーしました。今、コンパイル時に検索パスに "./"パスが表示されます。しかし、私が "ファイル-L ./libSDL.so"を書くと、私は新しくコンパイルされたlibSDL.soも32ビットであり、64ビットではないことに気付きました!!どのようにしてlibSDL.soの "make"に、32ビットではなく64ビットにコンパイルするように頼むのですか? – user598208