【发布时间】:2012-06-28 04:44:39
【问题描述】:
使用 RaspBerry Pi 和我的计算机,我正在尝试交叉编译一个用 C++ 编写的简单 helloWorld。我正在使用 Code Sourcery 工具链 for linux 进行编译。
当通过 TFTP 将 helloWorld 二进制文件复制到 raspBerry 并使用 chmod 赋予它执行权限时,出现下一个错误:
“非法指令”
如果在二进制文件上创建一个“文件”,我会得到: “覆盆子: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 源代码和反汇编代码。
-
是的,但是在 Raspberry 上编译比在我的 Core i5 上编译要慢。但我也想用我心爱的 Eclipse 编程。
-
如果需要在目标系统上构建整个工具链,下载/购买商业工具链是什么意思?
-
我得到“分段错误”,因为通过 TFTP 将我的二进制文件传输到树莓派,我使用 ASCII 模式而不是二进制模式。初学者的东西。
-
@CesarOrtiz 我知道这已经很晚了,但我就是忍不住!
endl已经flushes,所以你故意冲洗两次。这就是为什么我首先更喜欢使用'\n'而不是endl。
标签: c++ cross-compiling codesourcery raspberry-pi