我有一个昨天运行的C文件,它运行得很好。现在,当我尝试打开它时,它是一团糟(只有1和0,中间有一些随机字母)。我无法理解发生了什么,但这是一个危机,因为我需要在大约2个小时内为学校项目提供这个。谁能知道问题是什么?
答案 0 :(得分:2)
正如评论中提到的,这个问题最可能的原因是你用可执行文件覆盖了源文件,可能是用
之类的东西编译的。gcc myfile.c -o myfile.c
在我做了一次之后,我编写了以下简单的脚本以避免再次这样做。该脚本将单个文件名作为输入,剥离扩展以创建输出文件名,验证输出文件名实际上与输入文件名不同,然后调用编译器。
if [[ $1 == "" ]]
then echo Usage: scc filename.c; echo; exit
fi
if [[ $2 != "" ]]
then echo Sorry, only one parameter is allowed; echo; exit
fi
fullfilename=${1}
basefilename=${1%.c}
if [[ $basefilename == $fullfilename ]]
then echo "Error: invalid filename"; echo; exit
fi
echo gcc -Wall $1 -o $basefilename
gcc -Wall $1 -o $basefilename
在我的系统上,脚本文件路径为"〜/ utils / sensibleCC"我的shell启动文件中有以下行
alias "scc=~/utils/sensibleCC"
那样,如果我输入以下命令
scc hello.c
使用
调用编译器gcc -Wall hello.c -o hello