A. 我输入arm-elf-gcc -o2 -c helloworld.c没有提示错误,也没生成目标文件,怎么办
解压刚刚的那个压缩包后,你设置的环境变量有问题,或者是权限没有设置正确导致的。
请按照如下步骤试验:(教程是死的,具体的目录和环境变量的目录可以由你自己来改变,但是你的环境变量所指的目录一定要正确指向你的配置文件上。)
1.下载安装cygwin
2.将下载下来的leeos_tools_for_cygwin.tar.gz放到H:\cygwin\usr中,并用命令cd /usr和tar zxvf leeos_tools_for_Cygwin.tar.gz解压
3.设置环境变量,依次输入以下三条命令
echo "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/bin">>/etc/profile
echo "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/libexec/gcc/arm-elf/4.4.2">>/etc/profile
echo "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/arm-elf/bin">>/etc/profile
然后重启cygwin
4.用chmod 777命令把刚才设置的三个目录下的所有exe文件都设置一下权限。(肯定有类似批处理的那种命令可以一下把所有exe文件都设置完,但是我对linux环境不怎么熟悉,所以在这里还是用的最原始的办法一个一个改,还好一共也没几个exe文件)
5.把skyeye.exe复制到H:\cygwin\usr\leeos_tools_for_Cygwin\bin中。这样就算把环境配置完了。
知识拓展:关于arm-linux-gcc命令
Linux程序员可以根据自己的需要让 GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。 以文件example.c为例说明它的用法
0. arm-linux-gcc -o example example.c
不加-c、-S、-E参数,编译器将执行预处理、编译、汇编、连接操作直接生成可执行代码。 -o参数用于指定输出的文件,输出文件名为example,如果不指定输出文件,则默认输出a.out 1. arm-linux-gcc -c -o example.o example.c
-c参数将对源程序example.c进行预处理、编译、汇编操作,生成example.0文件
去掉指定输出选项"-o example.o"自动输出为example.o,所以说在这里-o加不加都可以 2.arm-linux-gcc -S -o example.s example.c
-S参数将对源程序example.c进行预处理、编译,生成example.s文件 -o选项同上
3.arm-linux-gcc -E -o example.i example.c
-E参数将对源程序example.c进行预处理,生成example.i文件(不同版本不一样,有的将预处理后的内容打印到屏幕上)