程序运行的一些基础知识

文章目录

  • 前言
  • 一、Ubuntu中编译时
    • 1、头文件目录
    • 2、库文件目录
  • 三.运行时去哪找库文件?


前言

开发时,一些库需要自己添加进Ubuntu和开发板中,就需要知道<程序运行的一些基础知识>,需要知道编译程序时去哪找头文件?链接时去哪找库文件?进而将库的头文件和库文件加到编译器能找到的路径下。


一、Ubuntu中编译时

通过以下命令可以,得到很多输出信息,其中有头文件去哪里找的信息和库文件哪里找的信息。

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

输出有很多,不用管:只需找到两个地方:
1、编译程序时去哪找头文件?
找到#include,即为头文件的目录。
2、链接时去哪找库文件?
找到LIBRARY_PATH,即为库文件目录。

1、头文件目录

展示:

#include "..." search starts here:
#include <...> search starts here:
 /home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/include
 /home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/include-fixed
 /home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/include
 /home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include

将库的信息拷贝到任意路经即可。

2、库文件目录

展示:(为了方便观看,将输出信息中:前加上了空格)

LIBRARY_PATH=/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/
:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/
:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/
:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/6.2.1/../../../../arm-linux-gnueabihf/lib/
:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/lib/
:/home/book/100ask_imx6ull-qemu/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/lib/

将库的信息拷贝到任意路经即可。

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

当把app程序移植到开发板时,程序运行需要依赖库文件,头文件不需要,所以只需要将库文件移植到开发板中的lib目录下即可

/bin

你可能感兴趣的:(Linux设备驱动,ubuntu,linux,运维)