Valgrind交叉編譯

2021-08-11 06:34:35 字數 2134 閱讀 6588

valgrind交叉編譯

編譯環境:ubuntu16.04 x64

開發平台:hisi3535 arm板

valgrind-3.12.0.tar.bz2

2.交叉編譯valgrind(三步走)

1)配置configure

./configure cc=arm-hisiv200-linux-gcc cxx=arm-hisiv200-linux-g++ ar=arm-hisiv200-linux-ar --host=arm-linux --prefix=/opt/valgrind-3.12.0

(給不會交叉編譯的解釋下,cc為交叉編譯鏈hisi3535,gcc編譯器,cxx為g++,都是海思sdk帶的)

在檢查指令碼的時候可能彈出

error: unsupported host architecture.sorry

如下圖所示錯誤

解決方法:

開啟configure指令碼

,找到armv7*

字段(如下圖所示)改寫為

armv7* |arm

或者將--host=arm-linux

改為--host=armv7-linux

2)make

3)make install

3.移植開發板

1) 在移植到開發板上的時候出現

「valgrind: failed to start tool 'memcheck' for platform 'arm-linux': no such file or directory

」,如下圖所示

2) 需要注意的一點,

網上很多教程都說要注意

--prefix

後面的安裝目錄要和開發板平台目錄一致,比如說我現在在ubuntu x64編譯,安裝到/opt/valgrind-3.12.0目錄,那麼我們將整個valgrind-3.12.0目錄拷貝到開發板,那麼必須拷貝到開發板的/opt目錄下,可能有的的確問題解決了。

但是其實本質上的問題是執行valgrind時,沒有找到valgrind的lib庫!!!

解決方案:

可以看到lib下面還有一層目錄valgrind,這時候我們在開發板/etc/profile檔案中新增一行

export valgrind_lib=/opt/valgrind-3.12.0/lib/valgrind

當然我們還可以在

/opt/valgrind-3.12.0/bin

",黑色為一些系統路徑配置(根據你自己profile裡面path路徑),新增後面紅色部分就行了,執行下source /etc/profile ,就可以當valgrind命令使用了

執行下

本來以為在hi3535上面可以使用了,其實看到上圖的錯誤可以看到,出現乙個錯誤碼,最後定位是由於我們使用的hi3535 是

armv5(由海思提供 兩套乙個是armv5乙個是armv7,但是我們使用的是armv5),而valgrind最低硬體要求就是armv7和vfp,所以出現如上

圖所示錯誤,其它編譯步驟和移植沒有問題

交叉編譯valgrind

wget tar xvf valgrind 3.12.0.tar.bz2 cd valgrind 3.12.0 sudo apt get install automake configure host armv7 linux cc arm linux gnueabihf gcc cpp arm li...

arm交叉編譯Valgrind

1.wget 把檔案考到板子上,並同步板子的時間到現在。tar xvf valgrind 3.11.0.tar.bz2 cd valgrind 3.11.0 3.configure make make install 注意 prefix opt valgrind指定的目錄要與開發板上放置的目錄一致,...

hisi3531 valgrind 交叉編譯移植

valgrind 神器不用我多說,linux平台開發利器。一 安裝 1.autoconf wget tar zxvf autoconf 2.69.tar.gz cd autoconf 2.69 configure make make install 2.automake wget tar zxvf ...