2

WSF-CPP 2.1.0 ソースをダウンロードし、vcvars を x86_amd64 (VS 2008/9.0 を使用) に設定しましたが、問題が発生しています:

  1. Axis2/C コードには警告があふれているため、ビルドを試みるために何かを取得するには、wsf_c/axis2c/build/win32/makefile で /WX コンパイラ オプションを無効にする必要がありました。
  2. 現在、複数の Axis2/C ソース ファイルが httpd.h、http_core.h などの存在しないファイルをインクルードしようとしているという問題に直面しています (具体的な違反者は wsf_c/axis2c/src/core/transport/http にあります)。 /server/apache2)。

番号 1 は、makefile を作成した人にとっては悪い考えである可能性があるため、無視する必要があります。しかし、番号 2 は、欠落しているヘッダーよりも大きな問題を示しているようです。これは主に、Apache Web サイトからダウンロードした Axis2/c ライブラリを問題なくコンパイルできたためですが、コードは同一です (存在しないヘッダーの #includes を含む)。 )。この違いの原因を知っている人はいますか?

具体的には、64ビット環境変数を設定しようとしている方法です。私がしたことは、build.bat と wsf_c/build.bat の次の行を置き換えることだけでした。

@call vcvars32.bat /nologo

@call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64

私はこれを間違っていましたか?私は何か他のものを台無しにしましたか?

また、これは StackOverflow で尋ねた最初の質問です。それに関して、形式、内容、口調、適切性などについての批評をいただければ幸いです。

4

1 に答える 1

1

サポートが終了した古い WSO2 WSF/CPP/C または Axis2/C を使用しようとしている惨めな人への最初の推奨事項は、可能であれば別のライブラリを使用することです。このアドバイスを受け入れることを拒否する場合は、読み続けてください。

試行錯誤の末、ようやく正しくビルドできるようになりました。かかったものは次のとおりです。

  • 私の質問で述べたように、Axis2/C コードのすべての警告が原因でビルドがすぐに失敗するのを防ぐために、wsf_c/axis2c/build/win32/makefile の /WX コンパイラ オプションを無効にする必要がありました。
  • また、私の質問で述べたように、build.bat の先頭にある行を変更する必要がありました (build.bat または wsf_c/build.bat のいずれかが機能します。これらは同じコンソールで実行され、環境変数を 1 回設定するだけで済みます)。コンソール セッションごと)。から行を変更しました

    @call vcvars32.bat /nologo
    

    @call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
    

    これにより、64 ビット構成ですべてをビルドするようにコンパイラーがセットアップされます。

  • wsf_c/build.bat で、11 行目 (またはその近く) の Axis2/C ビルド コマンドを次のように変更する必要がありました。

    nmake dist AUTOCONF=..\..\..\configure.in
    

    nmake install AUTOCONF=..\..\..\configure.in
    

    これにより、ヘッダーの欠落エラーが魔法のように修正されました。理由が分かれば説明します。

  • 次に、そのコマンドの直後に次の行を追加する必要がありました。

    move ..\deploy ..\axis2c-bin-1.6.0-win32
    

    これは、残りのビルド スクリプトを修正するために必要でしたaxis2c-bin-1.6.0-win32。Axis2/C は実際にはすべてを「deploy」というフォルダーに配置しますが、これらはすべてビルド ディレクトリを として参照しているためです。詳細に熱心な場合は、そのフォルダーへのすべての参照を最後に「win64」に変更できますが、可能な限り最小限の労力で機能させたかっただけです。

ただし、これらはすべて、WSO2 のドキュメントに記載されている最初のインストール/ビルド手順を超える手順であることに注意してください。WSO2 の指示に示されているすべての手順も引き続き必要です (明らかに 32 ビット専用のものは除きます)。

残念ながら、これは Axis2/C から Rampart DLL をロードしようとしていた私の本当の問題を解決しませんでした。私は WSO2 がより良い方法で構築されていることを期待して WSO2 の実装を追求していましたが、残念ながらうまくいきませんでした。Rampart の問題は別のスレッドに投稿しますが、同じように回答が得られる可能性は低いです。私はまだウェブ上のどこでもその解決策を見つけていません。

于 2013-04-04T13:54:06.877 に答える