• 在嵌入式开发过程中,经常需要用到某些库,这些库需要运行在开发板上(即需要交叉编译出这些库)
    • 使用 buildroot 来给 ARM 板编译程序、编译库会很简单;配置下界面就可以了
    • 手工交叉编译,这种方法在编译、安装一些小程序时很有用(特别是这些小程序依赖条件比较少时)
    1. 编译程序时去哪找头文件? 系统目录:就是交叉编译工具链里的某个 include 目录; 也可以自己指定:编译时用 “ -I dir ”选项指定。
    2. 链接时去哪找库文件?

    系统目录:就是交叉编译工具链里的某个 lib 目录;

    也可以自己指定:链接时用 “ -L dir ”选项指定。

    1. 运行时去哪找库文件?

    系统目录:就是板子上的/lib、/usr/lib 目录;

    也可以自己指定:运行程序用环境变量 LD_LIBRARY_PATH 指定。

    1. 运行时不需要头文件,所以头文件不用放到板子上
    • 头文件还可能来自其他库(依赖),那么就还要去交叉编译其他库

    常见错误问题

    • 头文件

    image.png

    • 库文件

    image.png
    库在哪里?
    image.png
    image.png

    • 运行时库

    image.png

    • 交叉编译程序的万能命令

    image.png

    如果你编译的是一个库,请把得到的头文件、库文件放入工具链的 include、lib 目录里。别的程序要使用这些头文件、库时,会很方便。