RaspBerry Piと私のコンピュータからは、C++で書かれた単純なhelloWorldをクロスコンパイルしようとしています。私は、コンパイルするために、Linux用のCode Sourceryツールチェーンを使用しています。 TFTPによってラズベリーとそれをchmodコマンドで実行権限を与えることのHelloWorldバイナリをコピーするとRaspBerry Piのクロスコンパイル
、次のエラーが表示されます:バイナリの上に「ファイル」を作る場合
「不正な命令」
私が取得: "ラズベリー:ELF 32ビットLSB実行可能ARM、バージョン1(SYSV)、静的にリンクされ、ストリップされました"
これは、リンク時に "-static -static-libstdC++"を使用したためです。
私は静的リンクを使用しない場合、エラーは次のとおりです。 「セグメンテーション違反」
コード:
/*
* main.cpp
*
* Created on: 26/06/2012
* Author: ccortiz
*/
#include <iostream>
using namespace std;
int main(void){
cout << "Hello Cross Compilling for ARM!" << endl << flush;
return 0;
}
どのように私は、正しい方法で私のプログラムをコンパイルして実行することができますか?おかげさまで
を構築した後、ラズベリーに生成されたバイナリを送り、あなたのバイナリ場合はHello Worldのソースと逆アセンブリを投稿してください。 –
私は、RaspberryPiの利点の1つは、完全なOSを実行することで、クロスコンパイルする必要はないということです。 –
はい、しかし、ラズベリーでのコンパイルは、私のCore i5でのコンパイルよりも遅いです。しかし、私も愛するEclipseでプログラミングしたいと思っています。 –