mac os x 10.5.7でApache用のmod_auth_kerbを補完しようとしています。コンパイルエラーは発生しませんが、Apacheがロードしようとしたときに:64ビットプラットフォーム用の32ビットApacheモジュールをコンパイルするにはどうすればよいですか?
org.apache.httpd [95092]:httpd:/private/etc/apache2/httpd.confの行160の構文エラー:/ usrをロードできません。サーバーへの/libexec/apache2/mod_auth_kerb.so:dlopen(/usr/libexec/apache2/mod_auth_kerb.so、10):適切なイメージが見つかりません。見つけました:\ nは\トンは/ usr/libexecに/ apache2の/ mod_auth_kerb.so:マッハ-Oが、私はメイクファイルに次の試してみました
間違ったアーキテクチャ:
ARCHFLAGS = ' - アーチPPC64' を CPPFLAGS = -I。 -Ispnegokrb5 $(KRB5_CPPFLAGS)$(KRB4_CPPFLAGS)$(DEFS)-mpowerpc64 -mcpu = G5 -mtune = G5 -arch PPC64 LDFLAGS = $(KRB5_LDFLAGS)$(KRB4_LDFLAGS)$(LIB_resolv)-mpowerpc64 -mcpu = G5 -mtune = G5 -arch ppc64の CFLAGS = -mpowerpc64 -mcpu = G5 -mtune = G5 -arch ppc64の
私は、これらのスレッドで見てきた:
http://lists.apple.com/archives/unix-porting/2008/Mar/msg00061.html
私もこれを変更しますソース:
にkrb5_rc_resolve_full から__KerberosInternal_krb5_rc_resolve_full
私はそれをロードするようにApacheを得ることができない、それはそれは間違っているアーキテクチャであると主張しています。私は、おそらく問題であるように、Macサーバーのこのバージョンでは、最初から64ビットのapacheが考えられると思います。私はちょうどそれを通過する方法を知らない。
行160は、httpd.confファイルの赤い灰色です(##が付いています)。
正しくコンパイルする方法がわからず、助けを求めていました。
私は
ありがとうG5 PPC 64を持っています。
EDIT:奇数は何
はこれです:
コマンドotool -hv mod_auth_kerb.so mod_auth_kerb.so:マッハヘッダー 魔法CPUTYPEのcpusubtypeが
MH_MAGIC_64 PPC64 ALL 0x00のBUNDLEファイルタイプncmds sizeofcmdsフラグをキャップ10 1328 NOUNDEFS DYLDLINK TWOLEVEL
何が問題なのか分かりません。
私はPPC64上にあり、それは私がコンパイルしたように見えます。私が正しく質問を以下てる場合
私は次のようではありませんよ。私がPPC上にいる場合、x86_64用にコンパイルするためにクロスコンパイラが必要なのはなぜですか?また、 "正しい"ものではない場合、なぜ、-arch ppc64でエラーが出るのでしょうか?あなたの知恵に疑問を呈さず、理解しようとするだけです。ありがとうございます – johnny
@Johnnyあなたのソースコードは正しかったのでコンパイルは正常ですが、結果として得られるオブジェクトは正しいアーキテクチャではなく、つまり正しいマシンコードを含んでいません。 ELF/Mac形式のオブジェクト形式はアーキテクチャに依存しないため、オブジェクトが間違ったアーキテクチャであり、実行しようとしていないというヘッダから作業します。クロスコンパイルとアーキテクチャーについて少しお読みください。なぜそれが明らかでしょうか。 –
また、ソースからモジュールをコンパイルする場合、通常は付属のconfigureスクリプトが正しいアーチ(32ビットまたは64ビットなど)を決定します。 –