【问题标题】:Incomprehensible error when executing simple C program on an embedded linux在嵌入式 linux 上执行简单的 C 程序时出现难以理解的错误
【发布时间】:2016-04-16 06:04:23
【问题描述】:

我只需要在我的嵌入式 linux 上执行一个用 C 编写的简单 helloworld 程序。我使用了许多交叉编译器来构建不同的工具链,并且在模拟器上它可以工作。

但在目标系统上它每次都显示相同的错误:

./helloworld: 1: Syntax error: newline unexpected 

所以我认为这不是二进制问题,而是系统错误。我下载了一个可在目标系统上运行的二进制文件(例如 bin 目录中的日期),然后将其上传回目标系统 - 在执行新上传的二进制文件时,我遇到了同样的错误。

如何解决这个问题?

【问题讨论】:

  • 你怎么下载/下载?
  • 下载到目标系统-从目标系统shell运行-wget example.com/...binary
  • 看来shell试图将其作为shell脚本运行。
  • 尝试运行file helloworld(在您的嵌入式系统上(如果可用)或在其他机器上)。它是否被正确识别为目标架构的 ELF 二进制可执行文件?
  • 投反对票,评论如何?我很好奇这个问题。

标签: c linux embedded embedded-linux


【解决方案1】:

我猜这是问题所在:

~ $ wget  http://www.slashdot.org/helloworld
Connecting to www.slashdot.org (216.34.181.48:80)
Connecting to slashdot.org (216.34.181.45:80)
helloworld           100% |**********************|   161k  0:00:00 ETA
~ $ chmod a+x helloworld
~ $ ./helloworld
./helloworld: line 1: syntax error: unexpected newline
~ $ 

您的 wget 并没有真正下载二进制文件,而是返回了一些 html 页面。

【讨论】:

  • 感谢您的回答,我会尝试以其他方式下载二进制文件并回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 2015-05-24
  • 2020-12-10
  • 2017-01-28
相关资源
最近更新 更多