1、找不到tslib.h库的头文件
这是因为找不到tslib库的头文件。
确定工具链中头文件、库文件目录,对于 IMX6ULL ,命令如下
echo 'main(){}'| arm-linux-gnueabihf-gcc -E -v -
找到了编译器arm-linux-gnueabihf的include和lib文件夹
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
进入tslib的安装目录,我的ubuntu的tslib安装在/home/zhiguoxin/linux/tool/tslib中
cd /home/zhiguoxin/linux/tool/tslib
然后将include文件夹下的所有文件和lib文件夹下的所有文件都拷贝到编译器arm-linux-gnueabihf的include和lib文件夹下
cp include/* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
cp -d lib/*so* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
之后在编译就可以通过了
2、找不到ft2build.h库的头文件
这是因为找不到tslib库的头文件。
确定工具链中头文件、库文件目录,对于 IMX6ULL ,命令如下
echo 'main(){}'| arm-linux-gnueabihf-gcc -E -v -
找到了编译器arm-linux-gnueabihf的include和lib文件夹
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
进入freetype的安装目录,我的ubuntu的tslib安装在/home/zhiguoxin/linux/tool/freetype中
cd /home/zhiguoxin/linux/tool/freetype
然后将/include/freetype2文件夹下的所有文件和lib文件夹下的所有文件都拷贝到编译器arm-linux-gnueabihf的include和lib文件夹下
cp -R include/* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
cp -d lib/*so* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
之后在编译就可以通过了
需要PNG的库,进入png的安装目录,我的ubuntu的png安装在/home/zhiguoxin/linux/tool/png中
cd /home/zhiguoxin/linux/tool/png
然后将/include文件夹下的所有文件和lib文件夹下的所有文件都拷贝到编译器arm-linux-gnueabihf的include和lib文件夹下
cp -R include/* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
cp -d lib/*so* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
再次编译
需要zlib库,进入zlib的安装目录,我的ubuntu的png安装在/home/zhiguoxin/linux/tool/zlib中
cd /home/zhiguoxin/linux/tool/zlib
然后将/include文件夹下的所有文件和lib文件夹下的所有文件都拷贝到编译器arm-linux-gnueabihf的include和lib文件夹下
cp -R include/* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include
cp -d lib/*so* /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib
当然在makefile中也需要引用
再次编译,发现编译成功。
总结
我们在程序中应用了很多的库,在ubuntu中编译时,就是去编译器(arm-linux-gnueabihf-gcc)的路径下面去找这些库,如果没有这个库就肯定会报错。所以需要哪些库,我们首先要在ubuntu中安装好,然后再将这些头文件和动态库文件复制到编译器(arm-linux-gnueabihf-gcc)的对应路径下即可。