2012-03-24 112 views
4

我試圖安裝glibc來調試我正在處理的C框架。但是,在構建過程中出現錯誤。這是錯誤信息:構建glibc時出錯

make[3]: Leaving directory `/root/glibc-source/glibc-2.14/elf' 
/usr/bin/install -c /root/glibc-2.14-build/elf/ld.so /usr/local/myglibc/lib/ld-2.14.so.new 
mv -f /usr/local/myglibc/lib/ld-2.14.so.new /usr/local/myglibc/lib/ld-2.14.so 
/usr/bin/install -c /root/glibc-2.14-build/libc.so /usr/local/myglibc/lib/libc-2.14.so.new 
mv -f /usr/local/myglibc/lib/libc-2.14.so.new /usr/local/myglibc/lib/libc-2.14.so 
echo ld-2.14.so /usr/local/myglibc/lib/ld-linux-x86-64.so.2 >> /root/glibc-2.14-build/elf/symlink.list 
/usr/bin/install -c /root/glibc-2.14-build/elf/sotruss-lib.so /usr/local/myglibc/lib/audit/sotruss-lib.so.new 
mv -f /usr/local/myglibc/lib/audit/sotruss-lib.so.new /usr/local/myglibc/lib/audit/sotruss-lib.so 
make[2]: *** No rule to make target `/root/glibc-2.14-build/dlfcn/libdl.so.2', needed by `/root/glibc-2.14-build/elf/sprof'. Stop. 
make[2]: Leaving directory `/root/glibc-source/glibc-2.14/elf' 
make[1]: *** [elf/subdir_install] Error 2 
make[1]: Leaving directory `/root/glibc-source/glibc-2.14' 
make: *** [install] Error 2 

這是已知問題嗎? 上週早些時候,我在同一臺機器上建立了glibc,沒有發生任何錯誤。我正在重建它,因爲默認情況下,glibc是使用優化級別2(-O2)編譯的,我無法從代碼轉儲中查看庫函數內的一些變量的值,因爲它們已經被優化。我目前正試圖與優化級別1

感謝

回答

4

它看起來像你想make install,沒有首先做一個成功的make all編譯。

+0

感謝您的回覆。在全部完成後我再次嘗試,並且這次使安裝通過。我總是在運行configure之後立即進行安裝。你能解釋一下如何讓一切都很重要嗎? – AnlKumr 2012-03-26 10:10:37

+0

@AnlKumr'make all'通常會編譯所有內容,並不能保證'make install'將取決於所有內容的構建。在將來,我會建議'./configure && make all && make install'命令來避免這種意外。 – HonkyTonk 2012-03-26 10:17:49

+0

@HonkyTonk是的,我很驚訝在'make install'中沒有依賴這個特定的文件。更奇怪的是,它之前沒有「全部」工作過。如何在同一個環境中的同一臺機器上突然出現新的依賴關係。 我知道這裏可能有很多隱藏因素,但它們是什麼? – AnlKumr 2012-03-26 10:34:05

0

這是爲了任何可能試圖在他們的Ubuntu機器上構建glibc的人的利益。 我經歷了以下問題並通過以下方式解決了這些問題。在Ubuntu 12.04

  • 遇到了我創建了同一水平巧舌如簧的版本的目錄能說會道,建立並運行以下命令

$>

這些問題.. /glibc-2.16.0/configure --prefix =/home/gugovind/tsapp/glibc/glibc-build/

給了我以下錯誤,makeinfo是m伊辛。

$>命令和apt-get安裝的texinfo

將解決此問題。

  • 它扔了,並約其當前目錄(即使它不存在)LD_LIBRARY_PATH 錯誤運行在命令提示符

    $>設置LD_LIBRARY_PATH

此以下只會暫時清除該控制檯的LD_LIBRARY_PATH。然後再次運行配置。

您可能會遇到配置的另一個問題.. 「功能strtonum從來沒有定義」

看的config.log文件,它可能會丟失mawk或呆子。使用

命令和apt-get安裝GAWK

安裝它們這應該讓你通過配置的一部分。

現在運行

使所有

如果萬一你遇到一個特定的文件中未編制..只是複製了gcc ......在這之前和之後再次將其粘貼在命令提示符你有cd到該目錄(錯誤之前的命令行應該告訴你去哪裏。)

make install的

您可能會收到有關無法找到etc/ld.config ...文件的警告。忽略.. 你現在全部設置。