Linux 运行程序报错 syntax error near unexpected token `(‘ ,原因你绝对想不到

编程入门 行业动态 更新时间:2024-10-11 23:26:45

Linux 运行程序<a href=https://www.elefans.com/category/jswz/34/1771188.html style=报错 syntax error near unexpected token `(‘ ,原因你绝对想不到"/>

Linux 运行程序报错 syntax error near unexpected token `(‘ ,原因你绝对想不到

1. 前言

本来是想随意写一个简单的程序进行测试,结果一个报错让我怀疑人生。本文描述的报错原因,大家是绝对想不到的。请看我一一道来,纯粹自嘲吧。

2. 探索过程

就拿最熟悉的 Hello world 来演示,程序如下:

#include "stdio.h"int main(int argc, char *argv[])
{printf("hello world!\n");return 0;
}

代码简单,可就是编译通过,运行出错,出错信息如下:

./func.c: line 3: syntax error near unexpected token `('
./func.c: line 3: `int main(int argc, char *argv[])'

尝试过程如下:

  1. 考虑到 Windows 和 Linux 下换行符的差异,直接在 Linux 下重新创建文件并使用 Vim 编写,无果;
  2. 考虑到报错信息提到 main 字样,仔细查看 main 附近代码,看是否有中文标点符号,无果;
  3. 考虑…知识储备和经验不够了…

但很多时候,在我怀疑人生而无果但依然坚持的情况下,能够让我突然窥探到我想要的答案,很是幸运。

3. 原因

在 Linux 下使用如下命令编译源文件后

gcc func.c

在控制台习惯性的输入 ./fu 并使用 Tab 键自动补全来运行程序,并且一气呵成

./func.c

结果就报出了以上错误;
其实编译后生成的可执行文件是 a.out,而我误以为编译生成了 func 可执行文件,就没想到自动补全后运行的是 func.c 源文件,而源文件没经过编译运行居然提示报错在 main 函数处。

4. 结语

首先我得吐槽一下:运行非执行文件,报错信息居然这么误导人。又算是栽到你手里了 – Linux

再次深刻的体会到了 习惯的力量,这力量是巨大的,巨大到你不会认为执行命令的语句是错误的,眼睛死死的盯着出错信息来进行判断。

本博文很大概率并不是大家想要的预期答案,甚至会认为这是在瞎扯。确实,对于不会面临该问题的人来说是瞎扯,但是因为个人习惯而面临的时候,也算是一种解决问题的思路。

一切没有解决的问题都是大问题,一切解决了的问题都是小问题。

更多推荐

Linux 运行程序报错 syntax error near unexpected token `(‘ ,原因你绝对想不到

本文发布于:2024-03-23 16:58:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1740600.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   因你   想不到   程序   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!