2

FreeBSD 8.1 で WSO2 WSF/PHP をビルドする際に問題があります。ソースで何かが壊れているようです。

すべての前提条件を確認してから実行する./configure && makeと、次のエラーが表示されます。

すべてをプラットフォーム/UNIX で作成
/usr/local/bin/bash ../../../libtool --tag=CC    --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include  -I../../../include/platforms  -I../../../include/platforms/unix     -g -O2 -D_LARGEFILE64_SOURCE -ansi -Wall -Wno-implicit-function-declaration -D_GNU_SOURCE -MT uuid_gen_unix.lo -MD -MP -MF .deps/uuid_gen_unix.Tpo -c -o uuid_gen_unix.lo uuid_gen_unix.c
mkdir .libs
 gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../include/platforms -I../../../include/platforms/unix -g -O2 -D_LARGEFILE64_SOURCE -ansi -Wall -Wno-implicit-function-declaration -D_GNU_SOURCE -MT uuid_gen_unix.lo -MD -MP -MF .deps/uuid_gen_unix.Tpo -c uuid_gen_unix.c  -fPIC -DPIC -o .libs/uuid_gen_unix.o
uuid_gen_unix.c: In function 'axutil_uuid_get_mac_addr':
uuid_gen_unix.c:332: error: 'SIOCGARP' undeclared (first use in this function)

グーグルで調べた後、で構成するためのアドバイスを見つけました./configure 'CPPFLAGS=-DHAVE_GETIFADDRS'。その後、makeコマンドはほぼ終了しましたが、最後に次の情報で終了します。

gcc -g -O2 -D_LARGEFILE64_SOURCE -ansi -Wall -Wno-implicit-function-declaration -o .libs/test test.o ../../axiom/src/om/.libs/libaxis2_axiom.so ../. ./util/src/.libs/libaxutil.so ../src/.libs/libneethi.so /usr/home/alisachenko/src/wso2-wsf-php-src-2.1.0/wsf_c/axis2c/axiom/ src/om/.libs/libaxis2_axiom.so /usr/home/alisachenko/src/wso2-wsf-php-src-2.1.0/wsf_c/axis2c/axiom/src/parser/guththila/.libs/libaxis2_parser.so / usr/home/alisachenko/src/wso2-wsf-php-src-2.1.0/wsf_c/axis2c/guththila/src/.libs/libguththila.so /usr/home/alisachenko/src/wso2-wsf-php-src -2.1.0/wsf_c/axis2c/util/src/.libs/libaxutil.so -lpthread -lz -Wl,--rpath -Wl,/usr/local/wsf_c/lib
../../util/src/.libs/libaxutil.so: `ftime' への未定義の参照

FreeBSD で WSO2 を完全にビルドするにはどうすればよいですか?

UPD1 建物後./configure 'CPPFLAGS=-DHAVE_GETIFADDRS' 'LDFLAGS=-lcompat'

gcc -shared -Wl,--whole-archive ../src/platforms/unix/.libs/libaxis2_unix.a -Wl,--no-whole-archive -lcompat -lpthread -lz -Wl,-soname -Wl, libaxutil.so.4 -o .libs/libaxutil.so.4
/usr/bin/ld: /usr/lib/libcompat.a(ftime.o): 再配置 R_X86_64_32 は共有オブジェクト作成時に使用できません。-fPIC で再コンパイル
/usr/lib/libcompat.a: シンボルを読み取れませんでした: 値が正しくありません

UPD2 建物後./configure CPPFLAGS='-fPIC -DHAVE_GETIFADDRS' 'LDFLAGS=-lcompat'

gcc -shared .libs/hash.o .libs/allocator.o .libs/env.o .libs/error.o .libs/stream.o .libs/log.o .libs/string.o .libs/string_util. o .libs/qname.o .libs/array_list.o .libs/linked_list.o .libs/utils.o .libs/dir_handler.o .libs/file_handler.o .libs/class_loader.o .libs/network_handler.o . libs/file.o .libs/uuid_gen.o .libs/thread_pool.o .libs/property.o .libs/types.o .libs/param.o .libs/param_container.o .libs/dll_desc.o .libs/ url.o .libs/stack.o .libs/generic_obj.o .libs/base64.o .libs/uri.o .libs/date_time.o .libs/base64_binary.o .libs/properties.o .libs/http_chunked_stream. o .libs/rand.o .libs/date_time_util.o .libs/version.o .libs/duration.o .libs/frame.o .libs/stomp.o .libs/md5.o .libs/digest_calc.o - Wl,--whole-archive ../src/platforms/unix/.libs/libaxis2_unix.a -Wl,--no-whole-archive -lcompat -lpthread -lz -Wl,-soname -Wl,libaxutil.so. 4 -o .libs/libaxutil.so.4
/usr/bin/ld: /usr/lib/libcompat.a(ftime.o): 再配置 R_X86_64_32 は共有オブジェクト作成時に使用できません。-fPIC で再コンパイル
/usr/lib/libcompat.a: シンボルを読み取れませんでした: 値が正しくありません
*** エラーコード 1

/usr/src/wso2-wsf-php-src-2.1.0/wsf_c/axis2c/util/src で停止します。
4

2 に答える 2

1
./configure 'CPPFLAGS=-DHAVE_GETIFADDRS LDFLAGS==-lcompat'
于 2011-06-17T17:07:04.963 に答える
1


また、さまざまな FreeBSD AMD64 で WSO2 を実行しようとしています。成功せずに.
私は ezjail の上に構築された刑務所で WSO2 をコンパイルしています。libcompat の再コンパイルが必要なので、「メイン」システムで行いました。残りはすべて刑務所で行われます。

  1. メインシステム (jail なし) で、makefile に -fPIC を指定して libcompat (/usr/src/lib/libcompat) を再コンパイルしたので、行は次のようになります。

    CFLAGS+=-fPIC -DLIBC_SCCS -DSYSLIBC_SCCS -I${.CURDIR}/../libc/locale

    [root@system /usr/src/lib/libcompat]# make install
    install -C -o root -g wheel -m 444 libcompat.a /usr/lib
    install -C -o root -g wheel -m 444 libcompat_p.a /usr/lib

  2. 次に libcompat.a と libcompat_p.a を basejail にコピーし、jail に切り替えてコンパイルを行いました

私はこれを見つけました: http://bsd.dischaos.com/2008/05/14/wso-web-services-framework-on-freebsd/ これは私にインスピレーションを与えました。
wsf_c/axis2c/util/src/platforms/unix/uuid_gen_unix.c を変更し、
#include < sys/param.h>を追加しまし
た (stackoverflow ポータルによって誤って解析されたため、ここに ^^^^ スペースを入れました)

3. 次に、configure.m4 を変更し、元のパスを次のパス PHP_ADD_INCLUDE(/usr/local/include/libxml2/libxml) に置き換えました。

4 . その後、まだコンパイルに問題があるため、これらの環境変数を追加しました export CPATH=/usr/local/include:/usr/local/include/libxml2:/usr/local/ssl/include/openssl::/usr/local/ssl/include
export LD_LIBRARY_PATH=/usr/local/lib

5. そして最後に、エラーなしでコンパイルすることができました

./configure "CPPFLAGS=-fPIC -DHAVE_GETIFADDRS" "LDFLAGS=-lcompat"
make
make install

私のリモート サーバー上のテスト ジェイルにはまだ Web インターフェイスが用意されていないため、提供されたサンプルでこのインストールをテストできませんでしたが、make 中も make install 中にもエラーが発生しなかったため、成功することは間違いありません。
Php -m は、セグメンテーション違反のない wsf モジュールを示しています。
サンプルも問題なく動いています。まだ wsdls を取得できませんが、時間の問題です。

直面する可能性のある重要な問題は、openssl です。私の記憶が正しければ、少なくともバージョン 0.9.8 である必要があります。1.x を使用しています。ただし、
このセットアップは Freebsd 8.x では問題なく動作しますが、FreeBSD 6.x では動作しませんでした。6.xでようやくWSO2を正常にビルドしましたが、wsf.soをphp構成に含めるとセグメンテーション違反が発生しました...その後、6.xをあきらめ、正常に動作するように見えるfreebsd 8.xに焦点を合わせました...開始したばかりですこのモジュールを使ってプログラミングを行います。

于 2012-04-13T20:27:35.880 に答える