当前位置:操作系统 > Unix/Linux >>

FreeBSD用ports安装Firefox不成功

今天在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' has no member named 'addr_info'

  nsDNSService2.cpp:96: error: 'class nsDerivedSafe' 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' has no member named 'addr_info'

  nsDNSService2.cpp:113: error: 'class nsDerivedSafe' 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即可!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,