我是一位热心的C / C ++程序员,他是这个固件定制研究领域的新手。对于我的最后一年项目,我正在开发一种解决方案来增强路由器的分组交换,并选择OpenWRT作为我的开源固件。我一直在努力设置环境,并希望得到你的专家意见,如果我在正确的道路上。
我按照以下步骤将openWRT发送到我的本地PC。 (http://wiki.openwrt.org/doc/howto/buildroot.exigence)。
在make menuconfig中,我选择了, - 高级配置选项 - 自动重建包--ToolChain选项 - 构建gdb - 构建OpenWRT图像生成器 - 构建OpenWRT SDK - 构建基于OpenWRT的ToolChain
并保存配置并运行命令, - make tools / install - make toolchain / install
然后在Netbeans中,我添加了一个来自Tools的新工具集 - >选项 - > C / C ++
并将基目录作为'/ openwrt / openwrt / toolchain'
和C Complier为'/ usr / bin / gcc'
如果我做错了,你能告诉我吗?这是否足以开发和编译一个新的C类到openWRT固件,以便我可以重建一个图像闪存到路由器?
亲爱的专家非常感谢您的建议。我很长一段时间都在努力解决这个问题:)
再次感谢:)
修改
问题在于我设置文件夹
/openwrt/openwrt/staging_dir/toolchain-i386_gcc-4.5-linaro_uClibc-0.9.32/i486-openwrt-linux
被设置为IDE中的交叉编译器,它给出了一个错误陈述,而不是在eclipse和Netbeans中都找不到编译器。
但是当我指向/openwrt/openwrt/toolchain
目录时它会起作用。
我的查询是,按下开发并使用工具链文件夹中的编译器编译项目是否可行?
编辑2
运行命令时得到的输出
find ./staging_dir -path "./staging_dir/toolchain*" -name *openwrt-linux
TheCodeArtist
建议的在openwrt文件夹中的
./staging_dir/toolchain-mips_34kc_gcc-4.6-linaro_uClibc-0.9.33.2/mips-openwrt-linux
编辑3
编辑4
答案 0 :(得分:1)
根据您打算以 Base Directory
<运行生成的可执行文件的设备,为目标体系结构(x86,arm,mips等)提供适当的工具链目录 /强>
接下来为 C compiler
, C++ compiler
等提供单个命令的相对路径/文件名等。将是相对路径(包括文件名)到上面指定的工具链目录中的相应二进制文件。
使用IDE编译一个简单的hello-world.c
程序。像
/* hello-world.c */
int main()
{
return (42);
}
使用IDE提供 Build
并检查编译输出窗口。了解错误(如果有)并相应地修改配置选项。
一旦构建成功,它将在项目目录中生成二进制hello-world
。打开一个新终端并对新生成的二进制文件运行 file
命令,以验证它是否确实是为目标体系结构构建的。例如,为x86-64构建的二进制文件将显示。
$ file hello-world
hello-world: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
在您的情况下,如果在IDE设置中正确配置了mips工具链和编译器,我认为它将是MIPS
可执行文件。