- 论坛徽章:
- 0
|
我在Solaris10系统下编译64bit版本的mod_jk。因为mod_jk默认的configure脚本\r\n在64bit模式下跑不通。我就使用 apache自带的apxs来编译。\r\n\r\nCFLAGS=\"-O2 -g -O2 -m64 -mcpu=v9 -mptr64 -Wa,-xarch=v9\"\r\n/www/apache2/bin/apxs -o mod_jk.so -DSOLARIS -DPREFORK -I../common\r\n-I/usr/java/include -I/usr/java/include/solaris -c *.c ../common/*.c\r\n\r\n指定CFLAGS是为了让gcc能够编译出64bit的软件。\r\n\r\n\r\n命令运行的输出最后部分是\r\n。。。。。。。。\r\n/www/apr/build-1/libtool --silent --mode=compile gcc -prefer-pic -O2 -g\r\n-O2 -m64 -mcpu=v9 -mptr64 -Wa,-xarch=v9 -DSOLARIS2=10\r\n-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -I/www/apache2/include\r\n-I/www/apr/include/apr-1 -I/www/apr-util//include/apr-1\r\n-I/usr/local/include -I../common -I/usr/java/include\r\n-I/usr/java/include/solaris -DSOLARIS -DPREFORK -c -o\r\n../common/jk_worker.lo ../common/jk_worker.c && touch\r\n../common/jk_worker.slo\r\n/www/apr/build-1/libtool --silent --mode=link gcc -o mod_jk.la -rpath\r\n/www/apache2/modules -module -avoid-version ../common/jk_worker.lo\r\n../common/jk_util.lo ../common/jk_uri_worker_map.lo\r\n../common/jk_status.lo ../common/jk_sockbuf.lo ../common/jk_shm.lo\r\n../common/jk_pool.lo ../common/jk_nwmain.lo ../common/jk_msg_buff.lo\r\n../common/jk_md5.lo ../common/jk_map.lo ../common/jk_lb_worker.lo\r\n../common/jk_jni_worker.lo ../common/jk_context.lo\r\n../common/jk_connect.lo ../common/jk_ajp_common.lo\r\n../common/jk_ajp14_worker.lo ../common/jk_ajp14.lo\r\n../common/jk_ajp13_worker.lo ../common/jk_ajp13.lo\r\n../common/jk_ajp12_worker.lo mod_jk.lo\r\nld: fatal: file ../common/.libs/jk_worker.o: wrong ELF class: ELFCLASS64\r\nld: fatal: File processing errors. No output written to .libs/mod_jk.so\r\ncollect2: ld returned 1 exit status\r\napxs:Error: Command failed with rc=65536\r\n\r\n从结果上看,是因为common/.libs/jk_worker.o这个文件是64bit版本的。gcc在\r\nlink是出错了。因为gcc在 complie模式下加上了我加红字的那部分参数。而最后\r\n那一个mode=link就没有加。我手动把那一串参数加上最后那条命令就能够执行过\r\n去。但是 apxs的整个编译无法完成。我想请教设置什么环境变量或者参数,能够\r\n让libtool在link模式下调用gcc的时候也能加上-O2 -g -O2 -m64 -mcpu=v9\r\n-mptr64 -Wa,-xarch=v9 这行参数。我试过设置LDFLAGS,也不行。 |
|