1、语法错误:错误可能出现在你的代码中,例如在函数、条件语句或循环中的括号不匹配。请检查你的代码,确保所有的括号都是成对出现的,并且没有缺失或多余的括号。
2、编译器或编译选项问题:你使用的编译器或编译选项可能与Tiny4412的环境不兼容。请确保你使用的编译器版本和编译选项与Tiny4412的要求相匹配,并且已正确配置编译环境。
3、编码问题:在一些情况下,特殊字符或编码问题可能导致编译器错误地解析代码。请确保你的代码文件使用正确的字符编码,并且没有包含不可见的特殊字符。
样例:
arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<
1)总体选项:
-c:预处理,编译和汇编源文件,但不做连接,编译器根据源文件生成OBJ文件
-S:编译后停止
-E:预处理后停止
-o file :指定输出文件 file
-v:显示编译细节
-Wa,-mimplicit-it=thumb 将逗号分隔的-mimplicit-it=thumb传递给汇编器
2)警告选项:
-w:的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的
-W:选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。
-Wall:选项意思是编译后显示所有警告。
3)连接器选项:
-I library :连接名为 library 的库文件
-nostartfiles : 不连接系统标准启动文件,二标准库文件仍然正常使用
-nostdlib : 不连接系统标准启动文件和标准库文件,只把指定的文件传递给连接器
-static : 在支持动态连接的系统上阻止连接共享库
-shared : 生成一个共享OBJ文件,它可以和其他OBJ文件连接产生可执行文件
-Xlinker option : 把选项option传递给连接器
-Wl ,option : 把选项option传递给连接器
-u symbol : 使连接器认为取消了 symbol 的符号定义,从而连接库文件以取得定义
4)优化选项:
-O、-O1
-O2
-O3
-O0
5)调试选项:
-g:产生调试信息
$(INCLUDE):
指明头文件(包含路径)