亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > 編譯make報(bào)錯(cuò)怎么辦

      編譯make報(bào)錯(cuò)怎么辦

      時(shí)間: 春健736 分享

      編譯make報(bào)錯(cuò)怎么辦

        Linux下從源代碼下編譯安裝一個(gè)軟件有時(shí)候會(huì)報(bào)錯(cuò),遇到一些麻煩。那么編譯make報(bào)錯(cuò)怎么辦呢?下面跟著學(xué)習(xí)啦小編一起來(lái)了解一下吧。

        編譯make報(bào)錯(cuò)怎么辦

        在Ubuntu下安裝nox,make出錯(cuò)如下:

        》》》》 collect2: ld returned 1 exit status

        》》》》 make[3]: *** [nox_core] Error 1

        》》》》 make[3]: Leaving directory `/usr/nox/build/src‘

        》》》》 make[2]: *** [all-recursive] Error 1

        》》》》 make[2]: Leaving directory `/usr/nox/build/src’

        》》》》 make[1]: *** [all-recursive] Error 1

        》》》》 make[1]: Leaving directory `/usr/nox/nox13oflib/build‘

        》》》》 make: *** [all] Error 2經(jīng)過(guò)查資料,在參考文獻(xiàn)【1】發(fā)現(xiàn)是因?yàn)閚ox只能在boost1.50以上的版本才能編譯成功,而Ubuntu12.10版本的boost版本為1.42。所以要更新boost,采取的方法是到boost官網(wǎng)下載源碼并且編譯。

        下面列出簡(jiǎn)要的安裝過(guò)程

        安裝虛擬機(jī):OpenFlow1.3_BiangHoo

        IP:10.10.134.124

        OS: ubuntu 12.10LTS

        nox安裝:

        安裝相關(guān)依賴(lài)包:

        sudo apt-get install autoconf automake g++ libtool swig make git-core libboost-dev libboost-test-dev libboost-filesystem-dev libssl-dev libpcap-dev python-twisted python-simplejson python-dev

        還要安裝libboost-all-dev 和libttb-dev

        apt-get install libboost-all-dev libttb-dev

        然后到到boost官網(wǎng)下載源碼并且編譯。我下載的是1.55版本。然后將boost安裝到/usr/local/目錄下

        即

        。/bootstrap.sh --prefix=/usr/local/boost

        然后

        。/b2 install

        接著運(yùn)行l(wèi)dconfig使相關(guān)的庫(kù)生效

        然后下載nox源碼

        git clone git://github.com/noxrepo/nox

        cd nox

        。/boot.sh

        mkdir build

        cd build

        。。/。/configure --with-boost=/usr/local/boost #boost的安裝位置

        make

        make install

        即可安裝成功

        啟動(dòng)nox

        cd PATH_TO_NOX/nox/build/src

        。/nox_core -i ptcp:6633

        注意:編譯安裝一個(gè)軟件不會(huì)被系統(tǒng)的包管理系統(tǒng)記錄信息,這對(duì)于卸載和記錄軟件的行為都是不利的,建議您盡量使用打包好的包(.rpm .deb)

        下面說(shuō)說(shuō)編譯出現(xiàn)錯(cuò)誤的另一種方法:

        ./configure 錯(cuò)誤

        以下根據(jù)錯(cuò)誤出現(xiàn)頻率一一道來(lái)。第一個(gè)是經(jīng)常性出現(xiàn)錯(cuò)誤(是選擇性的)。()中表示可選,OR表示有一致的解決辦法,<>表示內(nèi)的文字由具體情況具體表示

        1 。(configure:) (error:) <somename> (<someversion> (or higher)) not found. (Please check your installation!) OR checking for <somename>… (configure:) (error:) not found. OR (configure:) (error:) <somename> (<someversion> (or newer)) is required to build <package-you’re-trying-to-compile>

        這表明<somename>的包的-dev或者-devel版本沒(méi)有安裝。請(qǐng)使用你發(fā)行版的包管理器(或者其他尋找和安裝包的方法)來(lái)尋找<somename>包并且安裝,如果可能的話安裝-dev 或者-devel版本

        如果-dev 或者-devel版本已經(jīng)安裝了,或者不存在,查看一下已經(jīng)安裝的版本號(hào)。它足夠高嗎?是不是比<someversion>要低,這樣你要常 識(shí)升級(jí)這些包。如果還不行的話,你可以嘗試編譯你要編譯軟件的以前的版本。老版本通常使用老版本的庫(kù)/程序

        如果./configure 提示找不到的是一個(gè)庫(kù)(通常提示lib<something>),并且你確定了已經(jīng)安裝了正確版本的庫(kù),現(xiàn)在嘗試找到你的庫(kù)文件的位置。如果 庫(kù)文件路徑不包括在你的ld.conf 文件(通常是/etc/ld.conf或者是/etc/ld.so.conf)你應(yīng)該在此文件中添加,然后運(yùn)行l(wèi)dconfig命令(/sbin /ldconfig)需要注意的是:運(yùn)行l(wèi)dconfig 通常需要root權(quán)限。如果您不知道怎么辦,待回看一下下Make install錯(cuò)誤的第一點(diǎn)

        記:如果您沒(méi)有修改ld.conf文件的權(quán)限,您還可以將庫(kù)文件路徑添加到LD_LIBRARY_PATH變量中。當(dāng)然這是個(gè)笨方法,也不是最好的方法,但是當(dāng)你沒(méi)有其他選擇時(shí),你只好這么做了:

        export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/your/library/directory”

        當(dāng)然,將您的庫(kù)文件路徑。注意當(dāng)您運(yùn)行編譯好的軟件時(shí),LD_LIBRARY_PATH必須包含您的庫(kù)文件夾路徑

        2。(configure:) (error:) cannot find header (file) <somename>.h OR (configure:) (error:) (header) (file) <somename>.h missing! OR <similar>

        configure腳本提示找不到“.h文件。這個(gè)錯(cuò)誤和上面的錯(cuò)誤是類(lèi)似的,它也要求您安裝特定包的-dev或者-devel版本。然而,它并不 能清楚顯示你需要安裝哪個(gè)包,而<somename>會(huì)是一個(gè)特別廣泛的包,你可以嘗試在web上搜索<somename>.h 看它屬于那個(gè)包,然后嘗試用您系統(tǒng)的包管理器這安裝這個(gè)包(如果可能的話,同時(shí)安裝它的-dev或者-devel版本 )

        3。 (configure:) (error:) no acceptable cc found in <somedirectories>

        您沒(méi)有安裝gcc或者cc環(huán)境變量沒(méi)有設(shè)置。用包管理器檢查gcc是否已經(jīng)安裝,如果沒(méi)有的話,安裝它。如果安裝了嘗試用這個(gè)命令

        export CC=”/usr/bin/cc”

        如果要永久性的話,你可以將這個(gè)命令添加的/etc/profile中(當(dāng)任何用戶(hù)登陸進(jìn)來(lái)時(shí)會(huì)執(zhí)行這個(gè)文件里很多的命令)這樣,您以后就不要再設(shè)置了。

        4。(configure:) (error:) C++ preprocessor “/lib/cpp” fails sanity check

        您的g++包或者失蹤了或者conrrupted了,請(qǐng)檢查您的包管理器(或者其他尋找和安裝包的方法)去尋找g++和安裝相應(yīng)的包。注意,許多發(fā) 行版并不稱(chēng)為g++,比如說(shuō),F(xiàn)edora,在yum源里用gcc-g++來(lái)表示g++包。如果您找不到g++,你可以尋找c++,cpp和/或者gcc

        5。(configure:) (error:) C++ preprocessor “CC (-E)” fails sanity check

        這個(gè)是libtool的一些特定有bug的版本,它使configure腳本檢查libtool支持的編輯器。這個(gè)最快的解決辦法就是安裝g++(解決辦法如上)

        上面就是Ubuntu安裝Nox后編譯make不通過(guò)的方法介紹了,如果你不會(huì)安裝Nox,又或者安裝好后無(wú)法通過(guò)make,那么可嘗試使用本文介紹的方法進(jìn)行解決。

      647942