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:在函数“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): relocation 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 。库/libaxutil.so.4
/usr/bin/ld: /usr/lib/libcompat.a(ftime.o): relocation 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. 在主系统(没有监狱)中,我在 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 并切换到监狱,在那里我进行了编译

我发现了这个: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
导出 LD_LIBRARY_PATH=/usr/local/lib

5. 最后我设法编译没有错误

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

我在远程服务器上的测试监狱还没有可用的 Web 界面,因此我无法在提供的示例上测试此安装,但我很确定我会成功,因为在 make 和 make 安装期间都没有错误。
php -m 显示没有任何段错误的 wsf 模块。
样品也工作正常。我还不能得到 wsdls,但这只是时间问题。

您可能面临的重要问题是 openssl。如果我没记错的话,它至少必须在 0.9.8 版中。我正在使用 1.x。虽然
这个设置在 Freebsd 8.x 上运行良好,但我无法让它在 FreeBSD 6.x 上运行。在 6.x 上,我终于成功构建了 WSO2,但是在 php 配置中包含 wsf.so 时出现了段错误……然后我放弃了 6.x 并专注于似乎工作正常的 freebsd 8.x……刚刚开始用这个模块做一些编程。

于 2012-04-13T20:27:35.880 回答