開發的環境選用的時centOS7.2的系統
目錄
7.libncurses or libncursesw not found
====================================================
1.遇到的解壓縮包時出現的問題
只需yum 安裝 yum -y install bzip2 這個問題就可以解決了。
2.環境變量的寫入
首先是設置全局環境變量,對所有用戶都會生效:
1、/etc/profile: 此文件爲系統的每個用戶設置環境信息。當用戶登錄時,該文件被執行一次,並從 /etc/profile.d 目錄的配置文件中搜集shell 的設置。一般用於設置所有用戶使用的全局變量。
2、/etc/bashrc: 當 bash shell 被打開時,該文件被讀取。也就是說,每次新打開一個終端 shell,該文件就會被讀取。
對單個用戶生效:
1、~/.bash_profile 或 ~/.profile: 只對單個用戶生效,當用戶登錄時該文件僅執行一次。用戶可使用該文件添加自己使用的 shell 變量信息。另外在不同的LINUX操作系統下,這個文件可能是不同的,可能是 ~/.bash_profile, ~/.bash_login 或 ~/.profile 其中的一種或幾種,如果存在幾種的話,那麼執行的順序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如 Ubuntu 系統一般是 ~/.profile 文件。
2、~/.bashrc: 只對單個用戶生效,當登錄以及每次打開新的 shell 時,該文件被讀取。
此外,修改 /etc/environment 這個文件也能實現環境變量的設置。
/etc/environment是設置整個系統的環境,而/etc/profile是設置所有用戶的環境,前者與登錄用戶無關,後者與登錄用戶有關。
注:系統是先執行/etc/environment,再執行/etc/profile
以修改/etc/profile 爲例:
PATH="$PATH:/root/.config/composer/vendor/bin"
export PATH
執行
source /etc/profile
使其立即生效。
如果想多加個路徑yourpath1,在將“:yourpath1” 加載path後面,如:
PATH=”$PATH:/root/.config/composer/vendor/bin:yourpath1”
3.centos7 64bit安裝32位兼容包
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解決辦法:
參考到:
https://blog.csdn.net/liushihuidfg/article/details/46442209
https://www.linuxidc.com/Linux/2013-04/82494.htm
[root@localhost ~]# yum search glibc
[root@localhost ~]# yum install glibc.i686
要安裝32位的就選glibc.i686,64位就選glibc.x86_64。
1)執行命令: yum whatprovides libstdc++.so.6
然後會提示哪個安裝包有這個庫文件如下:
[root@Mrtan osdrv]# yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
libstdc++-4.8.5-39.el7.i686 : GNU Standard C++ Library
Repo : base
Matched from:
Provides : libstdc++.so.6
2)然後執行:
[root@Mrtan osdrv]# yum install libstdc++-4.8.5-39.el7.i686
3)如果安裝上面的操作還是有問題:error while loading shared libraries: libz.so.1: cannot open shared object file: No such
或者直接建議直接執行下面的操作:
(參考到博客:https://blog.csdn.net/u011473614/article/details/44733153?utm_source=blogxgwz9)
yum install glibc libstdc++ libgcc libX11.i686 libXext.i686 libao.i686 alsa-lib.i686 -y
或者:
yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686 -y
如果在控制檯出現 error while loading shared libraries: libz.so.1: cannot open shared object file: No such(一般都會出現)
file or directory 錯誤提示也是軟件 32 位包兼容的問題(該問題將導致無法自動生成 R.java 文件)
解決辦法:
yum install zlib.i686
4.uboot編譯出錯了,未能找到mkimage
解決方法:
將編譯生成的mkimage工具放到我們全局的文件夾下,能訪問的到。
5.[mkyaffs2image100] Error 1
錯誤描述:
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make[2]: *** [mkyaffs2image100] Error 1
make[2]: Leaving directory `/work/hi3518e/Hi3518E_SDK_V1.0.4.0/osdrv/tools/pc/mkyaffs2image/mkyaffs2image'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/work/hi3518e/Hi3518E_SDK_V1.0.4.0/osdrv/tools/pc/mkyaffs2image'
make: *** [hipctools] Error 2
問題所在,沒有安裝靜態庫
解決方法:yum install glibc-static
6.zlib庫錯誤
compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory
編譯到此處時,uboot和kernel是對應編譯完成了
問題定位:系統中沒有安裝zlib的庫
解決方法有兩個:
1)在我們使用的SDK中Hi3518E_SDK_V1.0.4.0是有這個工具的
zlib.h在osdrv/tools/pc/zlib/tmp/include目錄中有,只需要複製到osdrv/tools/pc/jffs2_tool/tmp/include目錄中即可。注意同時要將zconf.h也複製過去的。還有,要將tools/pc/jffs2_tool/tmp/lib目錄下的libz.a libz.so libz.so.1 libz.so.1.2.7等4個文件複製到tools/pc/jffs2_tool/tmp/lib目錄下。
[root@Mrtan pc]# ls
cramfs_tool jffs2_tool mkimage_tool nand_production ubifs_config zlib
ext4_utils lzma_tool mkyaffs2image squashfs4.2 uboot_tools
[root@Mrtan pc]# cd jffs2_tool/
[root@Mrtan jffs2_tool]# ls
lzo-2.09.tar.gz Makefile mtd-utils-1.5.0.tar.bz2 tmp
[root@Mrtan jffs2_tool]# cd tmp/
[root@Mrtan tmp]# ls
include lib lzo-2.09 mtd-utils-1.5.0 share
[root@Mrtan tmp]# cp ./../../zlib/tmp/include/zlib.h ./include/
[root@Mrtan tmp]# cp ./../../zlib/tmp/include/zconf.h ./include/
[root@Mrtan tmp]# cp ./../../zlib/tmp/lib/
libz.a libz.so libz.so.1 libz.so.1.2.7 pkgconfig/
[root@Mrtan tmp]# cp ./../../zlib/tmp/lib/* ./lib/
cp: omitting directory ‘./../../zlib/tmp/lib/pkgconfig’
[root@Mrtan tmp]# pwd
/work/hi3518e/Hi3518E_SDK_V1.0.4.0/osdrv/tools/pc/jffs2_tool/tmp
[root@Mrtan tmp]#
7.libncurses or libncursesw not found
這個也是對應的庫沒有
yum install ncurses-devel
--->安裝完後,最後出現
這裏因爲我們不需要cramfs,只需要jffs就可以了,所以最好的方法是改配置文件,去掉jffs下面部分的文件系統格式的編譯。最後在進行編譯就可以完成sdk的編譯了