-1

coreutils 8.20 (具体的にはソート) をコンパイルして、32 ビット ライブラリの代わりに 64 ビット ライブラリを使用する方法を見つけようとしています。

私の 32 ビット ライブラリは /lib にあります。

私の 64 ビット ライブラリは /lib/64 にあります。

LD_LIBRARY_PATH を /lib/64 に設定しましたが、それでもライブラリは /lib からロードされ、configure スクリプトへのコマンド ライン オプションはどれも必要なものを実行していないようです。

#>: ldd ./src/sort
    libgen.so.1 =>   /lib/libgen.so.1
    librt.so.1 =>    /lib/librt.so.1
    libc.so.1 =>     /lib/libc.so.1
    libaio.so.1 =>   /lib/libaio.so.1
    libmd.so.1 =>    /lib/libmd.so.1
    libm.so.2 =>     /lib/libm.so.2
    /platform/SUNW,Sun-Fire-V890/lib/libc_psr.so.1
    /platform/SUNW,Sun-Fire-V890/lib/libmd_psr.so.1
#>: echo $LD_LIBRARY_PATH
/lib/64

sort の以前のインストール (coreutils 8.9 から) で ldd を実行すると、64 ビット ライブラリが使用されます。

#>: ldd ./sort
    librt.so.1 =>    /lib/64/librt.so.1
    libc.so.1 =>     /lib/64/libc.so.1
    libaio.so.1 =>   /lib/64/libaio.so.1
    libmd.so.1 =>    /lib/64/libmd.so.1
    libm.so.2 =>     /lib/64/libm.so.2
    /platform/SUNW,Sun-Fire-V890/lib/sparcv9/libc_psr.so.1
    /platform/SUNW,Sun-Fire-V890/lib/sparcv9/libmd_psr.so.1

システム情報: SunOS 5.10 Generic_147440-26 sun4u sparc SUNW、Sun-Fire-V890

アドバイスをいただければ幸いです。

4

1 に答える 1

0

どうやら、環境/メイクファイル変数を「-m64」に設定する必要がありました

./configure --prefix "<ouput_dir>" CXXFLAGS="-m64" CFLAGS="-m64" LDFLAGS="-m64"

以前の検索で見つけられなかった投稿の答えは、Sagar Srivastava の功績によるものです: How to use "make" to use 64 bit libs because of ELFCLASS64 error

于 2013-03-07T15:40:54.080 に答える