2016-11-13 2 views
1

최근에 카메라로 일부 스크립팅을 시작했습니다. 나는 C로 간단한 hello world 프로그램을 만들었고 그것을 컴파일하고 카메라에 보냈다.카메라의 Linux 시스템에서 './abcd'와 함께 컴파일 된 C 프로그램을 실행할 수 없으며 대신/bin/sh 스크립트로 인식합니다.

카메라의 시스템은 매우 베어 본 (bare bone) 버전의 Linux입니다. uname을 실행하면 Linux가되고 uname -r은 2.6.35를 제공합니다. Bash가이 시스템에 설치되어 있지 않습니다. 내가 어떤 C 실행 파일을 실행하면

, 그것은 나에게 오류를 제공하는 스크립트입니다 생각 : ./helloworld: line 1: syntax error: unexpected "("

어떤 도움을 주시면 감사하겠습니다, 감사합니다.

+0

카메라는 무엇이며 어떤 프로세서가 있나요? x86 CPU가 아닌 경우 올바른 CPU/구조 플래그를 크로스 컴파일/설정 했습니까? 어떻게 소프트웨어를 시작합니까? 'file helloworld '는 뭐래? – dseifert

+0

@disifert 카메라는 Axis Communications Q7404 비디오 엔코더를 통과합니다. 매우 베어 본이기 때문에'file' 명령은 존재하지 않습니다. – SlickJava

+0

@dseifert 프로세서가 무엇인지 또는 CPU가 무엇인지 전혀 알지 못한다. 내가했던 모든 것은 editcgi를 통해 카메라에서 ssh를 사용할 수있게 해준다. – SlickJava

답변

1

gcc -o helloworld helloworld.c과 같은 것을 사용하여 64 비트 데스크탑 PC에서 hello world 프로그램을 컴파일했다고 가정합니다.

결과 바이너리는 AMD64 아키텍처 (Intel 64 비트라고 생각 함) 용이며 다른 프로세서 유형에서는 실행되지 않습니다. 나는. CRISv32 구조의 32 비트 ARTPEC-3 프로세서를 사용하는 대상 시스템 (= 카메라)과 호환되지 않습니다.

즉, 카메라의 CPU에 맞게 프로그램을 크로스 컴파일해야합니다. 예를 들어 확인하십시오. http://developer.axis.com/wiki/doku.php%3Fid=axis:compiling_for_cris_howto.html 카메라에서 첫 프로그램을 실행하는 방법에 대한 아주 좋은 자습서처럼 보입니다.

+0

감사합니다! 나는 깨어 났을 때 분명히 이것을 시도 할 것입니다. – SlickJava

+0

흠, SDK에 포함 된 gcc-cris에 대한 설치를 찾으러 갔을 때 그들은 중단 된 것으로 나타났습니다. 꽤 unforunate. SDK의 오래된 보관 자료를 더 깊이 파고 들어야 할 수도 있습니다. http://www.axis.com/nz/en/support/downloads/software-development-kit – SlickJava

+0

Nevermind! 나는 내가 gcc에서 컴파일하고있는 아키텍처의 종류를 추가하기위한 논의를 발견했다고 생각한다. 감사. – SlickJava