FreeBSD用ports安装Firefox不成功 + 解决办法!

王朝system·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

今天在FreeBSD 5.4 Release中安装Firefox, 先更新ports tree到最新版本:

FreeBSD# cvsup -g -L 2 /root/ports-supfile

然后到Firefox的目录中去执行make:

FreeBSD# cd /usr/ports/www/firefox

FreeBSD# make

没多久,系统就爆出了编译错误:

nsHostResolver.h:95: error: ISO C++ forbids declaration of `PRAddrInfo' with no type

nsHostResolver.h:95: error: expected `;' before '*' token

nsHostResolver.h: In member function `PRBool nsHostRecord::HasResult() const':

nsHostResolver.h:99: error: `addr_info' undeclared (first use this function)

nsHostResolver.h:99: error: (Each undeclared identifier is reported only once for each function it appears in.)

nsHostResolver.h: At global scope:

nsHostResolver.h:209: error: `PRAddrInfo' has not been declared

nsHostResolver.h:209: error: ISO C++ forbids declaration of `parameter' with no type

nsDNSService2.cpp: In member function `virtual nsresult nsDNSRecord::GetCanonicalName(nsACString&)':

nsDNSService2.cpp:95: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'

nsDNSService2.cpp:96: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'

nsDNSService2.cpp:96: error: `PR_GetCanonNameFromAddrInfo' undeclared (first use this function)

nsDNSService2.cpp: In member function `virtual nsresult nsDNSRecord::GetNextAddr(PRUint16, PRNetAddr*)':

nsDNSService2.cpp:112: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'

nsDNSService2.cpp:113: error: 'class nsDerivedSafe<nsHostRecord>' has no member named 'addr_info'

nsDNSService2.cpp:113: error: `PR_EnumerateAddrInfo' undeclared (first use this function)

nsDNSService2.cpp: In member function `PRUint16 nsDNSService::GetAFForLookup(const nsACString&)':

nsDNSService2.cpp:528: error: `PR_AF_UNSPEC' undeclared (first use this function)

gmake[4]: *** [nsDNSService2.o] Error 1

gmake[4]: Leaving directory `/usr/ports/www/firefox/work/mozilla/netwerk/dns/src'

gmake[3]: *** [libs] Error 2

gmake[3]: Leaving directory `/usr/ports/www/firefox/work/mozilla/netwerk/dns'

gmake[2]: *** [libs] Error 2

gmake[2]: Leaving directory `/usr/ports/www/firefox/work/mozilla/netwerk'

gmake[1]: *** [tier_9] Error 2

gmake[1]: Leaving directory `/usr/ports/www/firefox/work/mozilla'

gmake: *** [default] Error 2

*** Error code 2

引起这个问题的原因是Firefox在老版本的nspr上会存在问题,无法通过编译!

于是决定安装新版的依赖包:

FreeBSD# cd /usr/ports

FreeBSD# make search name=nspr

查出来有如下几个:

Port: nspr-4.4.1_1

Path: /usr/ports/devel/nspr

Port: dnsproxy-1.13

Path: /usr/ports/dns/dnsproxy

Port: transproxy-1.5

Path: /usr/ports/www/transproxy

对他们一一进行make, make install后,再来安装firefox即可!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航