1. 程序运行的一些基础知识

  1. 编译程序时去哪找头文件?
  系统目录:就是交叉编译工具链里的某个 include 目录;也可以自己指定:编译时用 “ -I dir ”选项指定。
  2. 链接时去哪找库文件?
  系统目录:就是交叉编译工具链里的某个 lib 目录;也可以自己指定:链接时用 “ -L dir ”选项指定。
  3. 运行时去哪找库文件?
  系统目录:就是板子上的/lib、/usr/lib 目录;也可以自己指定:运行程序用环境变量 LD_LIBRARY_PATH 指定。

2.常见错误的解决方法

  1.怎么确定“系统目录”?执行下面命令确定目录:

 echo 'main(){}' | arm-linux-gnueabihf-gcc -E -v -

 

 

 3. 运行问题

运行程序时找不到库,例如:
error while loading shared libraries: libxxx.so: 
cannot open shared object file: No such file or directory

找不到库,库在哪?

① 系统目录:就是板子上的/lib、/usr/lib 目录
② 也可以自己指定:
运行程序用环境变量 LD_LIBRARY_PATH 指定,执行以下的命令:
export LD_LIBRARY_PATH=/xxx_dir ; ./test
或
LD_LIBRARY_PATH=/xxx_dir ./test
posted on 2021-03-06 17:21  ღ惟吾德馨ღ  阅读(157)  评论(0)    收藏  举报