Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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++ 建立树莓Pi的开发环境_C++_Development Environment_Raspberry Pi_Beagleboard - Fatal编程技术网

C++ 建立树莓Pi的开发环境

C++ 建立树莓Pi的开发环境,c++,development-environment,raspberry-pi,beagleboard,C++,Development Environment,Raspberry Pi,Beagleboard,最近,出于好奇,我决定加入小型计算机的“潮流”。我买了一双覆盆子皮和小猎犬板,因为它们都很便宜,我忍不住:)但我的问题就从这里开始。当然,在购买这些设备之前,我就有了一个想法(控制台应用程序)。我把它们安装到我的路由器上,这样就可以访问RPi的“已安装”raspbian和BeagleBoard的ubuntu arm,并且可以安装,这就是我头疼的地方 我在笔记本电脑上安装了Ubuntu 13.04(dualboot),这样我就可以访问ARM编译器。在继续之前,我必须告诉你们,我主要是在Window

最近,出于好奇,我决定加入小型计算机的“潮流”。我买了一双覆盆子皮和小猎犬板,因为它们都很便宜,我忍不住:)但我的问题就从这里开始。当然,在购买这些设备之前,我就有了一个想法(控制台应用程序)。我把它们安装到我的路由器上,这样就可以访问RPi的“已安装”raspbian和BeagleBoard的ubuntu arm,并且可以安装,这就是我头疼的地方

我在笔记本电脑上安装了Ubuntu 13.04(dualboot),这样我就可以访问ARM编译器。在继续之前,我必须告诉你们,我主要是在Windows环境下开发的,但由于我的系统管理员背景,我对linux很熟悉。无论如何,因为我下班后没有太多的空闲时间,因为我喜欢与朋友和家人见面,所以我喜欢在工作时有空或需要放松时,在Windows(Visual Studio Ultimate 2012)下修改我的源代码并进行交叉编译,在我的笔记本电脑上的Ubuntu下,当我真的找到时间时,我想有一个简单的程序在我的笔记本电脑上为ARM编译,并将二进制文件发送到RPi和BeagleBoard(即使手动),以及在Windows和Linux上为x86编译,这样我就可以调试我的代码了

我阅读了其他人是如何做的,我使用EclipseCDT作为我的LinuxIDE+编译器(g++/gdb),并使用windows下的VisualStudio。我创建了自己的目录结构,但我发现Makefile要求非常繁琐。我花了好几天的时间才开始做这件事,但我仍然不满意,因为我习惯于在windows下使用简单的F5来获得Build+Run Debug,所有这些都是我想要的结构良好的方式

无论如何,一开始一切都很顺利,遵循C++11“标准”,并在linux下为其添加了适当的标志,然后出现了一些奇怪的错误,我甚至无法编译SQLite,而这个东西在windows/visual studio下运行得很好。经过几天的反复试验,我放弃了,我来到这里,寻求建议

你们这些RPi/BeagleBoard的粉丝们是如何使用这些计算机的,你们是如何设置多OS/multi-Arch环境进行调试和编译的?我发现这非常困难,以至于我正在考虑使用Java来运行我的想法:<。一种方法是将所有的库和编译器放在设备上,随身携带,这也没问题,但它确实感觉有点中世纪,毕竟我拥有的SD卡在尺寸上非常有限,上面有操作系统

欢迎提供任何提示、指南链接和书籍。即使英语不是我的母语,我也不介意用英语读书/读文章

提前谢谢


附言:我把这个项目放在一个拇指驱动器里

您的构建过程非常复杂,因此不要指望有任何简单的解决方案。您正在尝试使用多个操作系统、编译器和目标体系结构。是为了帮助解决这类问题而创建的,但它不是一个简单的解决方案。我认为没有。您的构建过程非常复杂,因此不要指望有任何简单的解决方案。您正在尝试使用多个操作系统、编译器和目标体系结构。是为了帮助解决这类问题而创建的,但它不是一个简单的解决方案。我认为没有。

首先,我不会打赌能够从Windows主机交叉编译
linux arm
linux-x86
目标,因此我的其余建议仅针对您的Ubuntu框


关于BeagleBoard上的Ubuntu for ARM,只要它使用Debian
armel/armhf
体系结构之一,那么您就可以安装一个
emdebian
跨工具链以及
xapt
。有很多简短的教程,选择你想要的


现在Raspbian的问题是它不使用通常的<代码> ARMEL/ARMHF <代码>体系结构,但在中间(硬浮点ARMV6,而<代码> ARMEL < /代码>是软浮标ARMV5和<代码> ARMHF <代码>是硬浮标ARMV7)。因此,您不能将标准的
emdebian
交叉工具链与
xapt
一起用于Raspbian的交叉编译

虽然有一个官方的Raspbian交叉工具链,但您可能想要(但我认为您应该忘记Eclipse,这太过分了,任何像
kate
gedit
这样的文本编辑器对于小项目来说都不会那么混乱)


我发现Makefile需求非常乏味

您可以使用自动工具生成
配置
生成文件
等,这比自己编写一个简单的
生成文件要容易得多。见例


将二进制文件发送到RPi和BeagleBoard

两个词:SSH/SCP。是的,您可以很容易地编写脚本,并将其作为构建过程的一部分


最后但并非最不重要的一点是,我无意冒犯(我也经历过;))但由于您是一名Windows开发人员,对如何在Linux上开发几乎没有经验,因此我的最佳建议是暂时放弃所有交叉编译内容,直到您真正习惯Linux开发。Linux开发一开始很混乱,交叉编译一开始也很混乱,不需要同时处理两者

一件简单的事情是将您的工具链和代码放在目标框(RPi/Beagle)上,通过SSHFS/任何东西装载您的源目录,以便您可以从主机轻松地编辑它,并在SSH会话中编译。只要您可以通过网络/互联网访问目标框(假设其安全性正确),您甚至不需要让目标框在物理上可用


祝你好运

首先,我不会打赌能够为
linux-arm
linux-x86
目标进行交叉编译