私は OpenIndiana ビルド マシンを構成しようとしていますが、(Open)(Solaris|Indiana) がビルド プロセスを処理する方法の (それほどではない) 微妙な違いに一般的に慣れていません。-m64
Solaris では、明示的に指定されていない限り、64 ビット カーネルで実行している場合でも、アプリケーションを m32 としてビルドするのがデフォルトであることを理解しました。のデフォルトの検索パスを適切に構成できないようですがclang
、gcc
うまく機能しています。
llvm
とgcc
viaの両方をインストールpkg
しましたが、手動でコンパイルする必要はありませんでした。
で基本的な C ファイルをコンパイルするとgcc
、デフォルト ( -m32
) と 64 ビット-m64
構成の両方で正常に動作し、 で設定されている検索パスを正しく使用しますcrle
。
mqudsi@openindiana:~/random$ crle
Default configuration file (/var/ld/ld.config) not found
Platform: 32-bit LSB 80386
Default Library Path (ELF): /lib:/usr/lib (system default)
Trusted Directories (ELF): /lib/secure:/usr/lib/secure (system default)
mqudsi@openindiana:~/random$ crle -64
Default configuration file (/var/ld/64/ld.config) not found
Platform: 64-bit LSB AMD64
Default Library Path (ELF): /lib/64:/usr/lib/64 (system default)
Trusted Directories (ELF): /lib/secure/64:/usr/lib/secure/64 (system default)
ただし、clang
システム構成を忘れているようで、-L ....
コンパイル時に手動で設定する必要があります。LD_LIBRARY_PATH
64ビットバイナリをコンパイルしようとすると、clang自体が32ビットであるため、グローバル設定は失敗します。
crle
gcc と同じ方法で、clang に Solaris 構成を反映させるにはどうすればよいですか?