最近我开始用我的相机写一些脚本。我用 C 编写了一个简单的 hello world 程序,编译它并将它也发送到我的相机。
相机的系统是一个非常简单的 Linux 版本。运行 uname
得到 Linux,uname -r
得到 2.6.35。此系统上未安装 Bash。
当我执行任何 C 可执行文件时,它认为它是一个脚本,给我错误:
./helloworld: 第 1 行:语法错误:意外的“(”
如有任何帮助,我们将不胜感激。
最佳答案
我假设您在 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这看起来是关于让您的第一个程序在您的相机上运行的非常好的教程。
关于相机的 Linux 系统无法运行带有 './abcd' 的已编译 C 程序,而是将其识别为/bin/sh 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40572352/