交叉编译的一些选项

CC 与 CXX

这是 C 与 C++ 编译器命令。默认值一般是 “gcc” 与 “g++”

CPPFLAGS

这是用于预处理阶段的选项。

AR,AS

AR

函数库打开包程序。默认命令是“ar

AS

汇编语言编译程序。默认命令是“as

GCC编译程序的基本过程:

cross-compile-gcc根据输入文件的后缀来确定文件的类型,然后根据用户的编译选项(包括优化选项、调试信息选项等)将其编译成相应的汇编临时文件(后缀为.s);

cross-compile-as将该汇编文件编译成目标文件(后缀为.o);

cross-compile-ld 根据用户的链接选项(包括指定链接命令文件等)将目标文件和各种库链接起来生成可执行文件。

交叉编译器的前缀问题

可以尝试手动执行命令(包括gcc,ar,as),看是否工作

-I  -isystem  -iquote

在预处理阶段添加路径以寻找头文件。

-iquote指定#include “*.h”

-I、-isystem指定#include <*.h> and#include “*.h”,如果指定了相同的目录,-I会被忽略

 

搜索优先顺序:

-I > environment variable > standard path(/usr/local/include> /usr/include)

-L > environment variable > standard path(/usr/local/lib> /usr/lib)

Shell命令export环境变量是必要的,以便shell以外的程序也能获得该环境变量,比如编译器

另外,环境变量中可以指定多个搜索目录,以冒号隔开。

DIR1:DIR2:DIR3:...

在命令行上也可以重复使用“-I”和“-L”选项来指定多个搜索路径的目录

 

猜你喜欢

转载自blog.csdn.net/baidu_25667879/article/details/80912031