相机的 Linux 系统无法 运行 使用 './abcd' 编译的 C 程序,而是将其识别为 /bin/sh 脚本
Camera's Linux system cannot run compiled C program with './abcd', recognises it as a /bin/sh script instead
最近我开始用我的相机编写一些脚本。我用 C 编写了一个简单的 hello world 程序,编译它并将它也发送到我的相机。
相机的系统是 Linux 的一个非常简单的版本。 运行 uname
给我 Linux,uname -r
给我 2.6.35。 Bash 未安装在此系统上。
当我执行任何 C 可执行文件时,它认为它是一个脚本,给我错误:
./helloworld: line 1: syntax error: unexpected "("
如有任何帮助,我们将不胜感激。
我假设您在 64 位台式电脑上使用 gcc -o helloworld helloworld.c
.
之类的东西编译了 hello world 程序
生成的二进制文件适用于 AMD64 架构(想想 Intel 64 位),不会 运行 用于任何其他处理器类型。 IE。它与使用 32 位 ARTPEC-3 处理器和 CRISv32 架构的目标系统(= 您的相机)不兼容。
这意味着您必须针对相机的 CPU 交叉编译您的程序。检查例如http://developer.axis.com/wiki/doku.php%3Fid=axis:compiling_for_cris_howto.html 这看起来是一个很好的教程,可以让你的第一个程序在你的相机上 运行。
最近我开始用我的相机编写一些脚本。我用 C 编写了一个简单的 hello world 程序,编译它并将它也发送到我的相机。
相机的系统是 Linux 的一个非常简单的版本。 运行 uname
给我 Linux,uname -r
给我 2.6.35。 Bash 未安装在此系统上。
当我执行任何 C 可执行文件时,它认为它是一个脚本,给我错误:
./helloworld: line 1: syntax error: unexpected "("
如有任何帮助,我们将不胜感激。
我假设您在 64 位台式电脑上使用 gcc -o helloworld helloworld.c
.
生成的二进制文件适用于 AMD64 架构(想想 Intel 64 位),不会 运行 用于任何其他处理器类型。 IE。它与使用 32 位 ARTPEC-3 处理器和 CRISv32 架构的目标系统(= 您的相机)不兼容。
这意味着您必须针对相机的 CPU 交叉编译您的程序。检查例如http://developer.axis.com/wiki/doku.php%3Fid=axis:compiling_for_cris_howto.html 这看起来是一个很好的教程,可以让你的第一个程序在你的相机上 运行。