文件管理 · 2024年8月13日

skyeye教程|我输入arm-elf-gcc -o2 -c helloworldc没有提示错误也没生成目标文件怎么办

A. 我输入arm-elf-gcc -o2 -c helloworld.c没有提示错误,也没生成目标文件,怎么办

解压刚刚的那个压缩包后,你设置的环境变量有问题,或者是权限没有设置正确导致的。请按照如下步骤试验:(教程是死的,具体的目录和环境变量的目录可以由你自己来改变,但是你的环境变量所指的目录一定要正确指向你的配置文件上。)1.下载安装cygwin2.将下载下来的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/profileecho "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/libexec/gcc/arm-elf/4.4.2">>/etc/profileecho "PATH=\$PATH:/usr/leeos_tools_for_Cygwin/arm-elf/bin">>/etc/profile然后重启cygwin4.用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文件(不同版本不一样,有的将预处理后的内容打印到屏幕上)