浙江福彩3d走势图
我們來自五湖四海,不為別的,只因有共同的愛好,為中國互聯網發展出一分力!

FreeBSD 4.0 Release上編譯MySQL通不過的解決方法

2012年06月06日15:41 閱讀: 20796 次

標簽: MySQL, 解決方法, FreeBSD, 編譯, Release

在清華BBS上看到有些朋友在 FreeBSD 4.0 Release上編譯MySQL時通不過,停留在編譯

sql/sql_yacc.cc文件處,很長時間都通不過,有網友說編譯了三個多小時都通不過, 我真

的很佩服他的耐心了。我也遇到了同樣的問題,還有過錯誤的判斷。 通過與清華BBS的網友

交流,我相信找到了問題所在。

有網友說用ports安裝就沒有什么問題,但并沒有進一步說明到底是因為什么。 看了一

下ports中對mysql-server的說明,原來用ports編譯mysql需要一個包:libtool-1.3.3。

請看FreeBSD對libtool這個包的描述:

This is GNU Libtool, a generic library support script. Libtool hides the

complexity of using shared libraries behind a consistent, portable interface.

To use libtool, add the new generic library building commands to your

Makefile, Makefile.in, or Makefile.am.

這是GNU Libtool,通用的庫支持腳本。Libtool用一致的方便的接口隱藏了使用共享庫

的復雜性。

(蹩腳的翻譯)要使用libtool,將新的通用庫 編譯命令加入Makefile,Makefile.in,

或Makefile。am中。

使用ports安裝需要先安裝libtool-1.3.3這個包,但是不用ports安裝, 直接編譯也需

要么?實驗證明是不需要的,在沒有安裝libtool包的情況下直接編譯mysql也可以通過,只

是停留在編譯sql_yacc.cc這個文件的時間非常長, 一般人都會覺得編譯出了問題而中斷編

譯過程。如果你耐心等待,并且有足夠的內存和交換分區,應該是可以編譯通過的。

如果在編譯sql_yacc.cc的時候出現了下面的錯誤:

Internal Compiler error: program cc1plus got fatal signal 11或

Out of virtual memory或

virtual memory exhausted

該問題是gcc要求大量的內存編譯帶有嵌入函數(inline function)的sql_yacc.cc, 而

系統內存和交換分區不足,那么可以使用./configure --with-low-memory重新配置, 再進

行編譯。

如果你正在使用gcc,該選項使得將-fno-inline加到編譯行,如果你正在使用其他的編

譯器,則加入-O0。即使你有特別多的存儲器和交換空間,也應該試一試--with-low-memory

選項。

我通過測試表明,使用--with-low-memory顯著的降低了編譯時間,而用ports安裝時,

ports中的patch將-O0加入了Makefile,不使用--with-low-memory也同樣可以快速的編譯完成。

其實,FreeBSD 4.0 Release的ISO安裝盤中有mysql的二進制安裝包, 不用編譯,

pkg_add就ok了,何必如此麻煩呢?


分享到: 更多
藍客門戶
©2001-2019 中國藍客聯盟 版權所有.
關于藍客聯盟歷史宗旨章程技術服務聯系我們藍客社區

浙江福彩3d走势图 mg电子中奖图片大全 梦幻西游无双版 百搭小丑扑克送彩金 黑龙江6十1开奖信息 传奇霸业翅膀五升六 指尖湖北麻将下载 巴塞罗那球员名单 山东群英会技巧 七夕在线客服 湖北30选5开奖结果走势图