Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从Mac(OS X Capitan)到Raspberry Pi3(Jessie)的交叉构建_C++_Linux_Macos - Fatal编程技术网

C++ 从Mac(OS X Capitan)到Raspberry Pi3(Jessie)的交叉构建

C++ 从Mac(OS X Capitan)到Raspberry Pi3(Jessie)的交叉构建,c++,linux,macos,C++,Linux,Macos,我无法在pi上编译数据库,因此我想在mac上编译它 我主要遵循这一点来构建我的交叉编译器 系统 雨衣 我的Mac电脑运行的是OS X El Capitan 10.11.3 uname-a给了我: darwinandreass-MacBook-Air-2.local 15.3.0达尔文内核版本15.3.0:Thu-Dec 10 18:40:58太平洋标准时间2015;root:xnu-3248.30.4~1/RELEASE_X86_64 X86_64 圆周率 uname-a: Linux rasp

我无法在pi上编译数据库,因此我想在mac上编译它

我主要遵循这一点来构建我的交叉编译器

系统 雨衣 我的Mac电脑运行的是
OS X El Capitan 10.11.3
uname-a
给了我:
darwinandreass-MacBook-Air-2.local 15.3.0达尔文内核版本15.3.0:Thu-Dec 10 18:40:58太平洋标准时间2015;root:xnu-3248.30.4~1/RELEASE_X86_64 X86_64

圆周率
uname-a
Linux raspberrypi 4.1.14-v7+#4 SMP抢占周三3月23日15:30:13 UTC 2016 armv7l GNU/Linux
在我要安装的db文件夹中运行
/configure--with system malloc--allow fetch
,可以获得更多信息:

*检测系统配置
Bash:4.3.30(1)-发布
使用ccache:否
C++编译器:GCC 4.92(/Ur/bin /C++)
主机系统:arm linux gnueabihf
构建系统:Linux 4.1.14-v7+armv7l
交叉编译:没有
主机操作系统:Linux
构建架构:armv7l
C++11:好的
预编译web资产:是
Protobuf编译器:/usr/bin/protoc
python:python 2.7.9
Node.js包管理器:/usr/local/bin/npm
咖啡:外部/咖啡脚本_1.10.0
Browserify:外部/Browserify_12.0.1
蓝鸟:外部/bluebird_2.9.32
web UI依赖项:外部/admin-deps_2.0.3
wget:/usr/bin/wget
卷曲:/usr/bin/curl
谷歌测试:外部/gtest_1.7.0
termcap:没有
boost_系统:外部/boost_1.56.0
protobuf:-lprotobuf
v8 javascript引擎:外部/v8_3.30.33.16
RE2:外部/RE2_20140111
z:-lz
加密:外部/openssl_1.0.1i
ssl:external/openssl_1.0.1i
卷曲度:外部/curl_7.40.0
malloc:系统
测试protobuf:好的
测试升压:外部/boost_1.56.0
测试OpenSSL:external/OpenSSL_1.0.1i
安装前缀:/usr/local
配置前缀:/usr/local/etc
运行时数据前缀:/usr/local/var

编译器设置 我安装了教程中所有必需的软件包并下载了 -
binutils-2.26.51
-
gcc-5.3.0

我将导出变量设置如下:

export CC=gcc-4.9
export CXX=g++-4.9
export CPP=cpp-4.9
export LD=gcc-4.9

export PREFIX="$HOME/opt/cross"
export TARGET="Linux 4.1.14-v7+"
export PATH="$PREFIX/bin:$PATH"
错误 在出现此错误之前,还需要指定主机

问题 1) 为目标指定什么

2) 从教程中还需要调整哪些内容才能使其正常工作

编辑: 正如所建议的,交叉编译机器上的目标机器是目标机器:
armlinux gnueabihf


我猜
/bfd
来自这个文件夹
/Users/MasterG/opt/cross
=>
/Users/MasterG/opt/cross/bfd
,它不存在,因为整个文件夹以前不存在。

目标可能应该是“arm linux gnueabihf”(输出中的“主机系统”行)。您可能应该使用与Raspbian中包含的GCC相同的代码,您可以通过在Pi上运行
GCC-v
来获得它。本教程还没有介绍将Pi中的头文件和C库导入到构建树中:配置行有
--没有头文件
,其中IIRC,意味着您正在构建一个没有目标操作系统的“裸机”交叉编译器。您可能想将/usr/include和部分或全部/usr/lib从您的Pi复制到您可以在mac上访问它的某个地方,然后使用
——以及头文件
等将路径传递到GCC的configure。我已经多年没有这样做了,所以我不能更具体地说了。抱歉。Thx,目标有效。对于标题,我将对此进行解读。您是否知道丢失的文件夹(请参见编辑)。裸机是否意味着它不能在目标操作系统上工作(我认为这是构建编译器的主要意义,让它在不同的系统上工作)。然而,[raspbian jessie]似乎是这样,所以我认为这不适合您,而且您几乎肯定也需要一些内核头-因此可能最容易从Pi复制。
checking build system type... Invalid configuration `4.1.14-v7+': machine `4.1.14' not recognized
configure: error: /bin/sh ../binutils-2.26.51/config.sub 4.1.14-v7+ failed