我是一个热心的C/C++程序员谁是新的固件定制领域的研究。在我最后一年的项目中,我正在开发一个增强路由器分组交换的解决方案,并选择OpenWRT作为我的opensource固件我一直在努力营造一个良好的环境,如果我走上了正确的道路,我想征求你的专家意见。
我按照以下步骤将openWRT转到我的本地PC.(http://wiki.openwrt.org/doc/howto/buildroot.exigence)。
在make menuconfig中,我选择了,-Advanced configuration Options-Automatic rebuild of packages-ToolChain Options-Build gdb-Build the OpenWRT Image Builder-Build the OpenWRT SDK-Build the OpenWRT based ToolChain
保存配置并运行命令,-make tools/install-make toolchain/install
然后在NETBeBox中,我从工具->选项-> C/C++中添加了一个新的工具集。
并将基本目录指定为'/openwrt/openwrt/toolchain'
C编译器为'/usr/bin/gcc'
如果我做错了什么,请你的专家指点我好吗这是否足以开发并编译一个新的C类到openWRT固件,这样我就可以重建一个映像并将其闪存到路由器中?
亲爱的专家们,非常感谢您的建议我在这个问题上挣扎了很长一段时间:)
再次感谢:)
编辑
问题是当我设置文件夹时/openwrt/openwrt/staging_dir/toolchain-i386_gcc-4.5-linaro_uClibc-0.9.32/i486-openwrt-linux
它在教程http://downloads.openwrt.org/docs/eclipse.pdf中提到要在IDE中设置为交叉编译器,它给出了一个错误,指出在eclipse和Netbeans中都找不到编译器。
但当我指向/openwrt/openwrt/toolchain
目录时,它就工作了。
我的疑问是,继续开发并使用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
最佳答案
为目标体系结构(x86、arm、mips等)提供适当的toolchain目录,该目录基于要将生成的可执行文件作为Base Directory
运行的设备。
接下来为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
在您的例子中,我假设如果mips工具链和编译器在IDE设置中正确配置,那么它将是一个
MIPS
可执行文件。关于c - 带有NetBeans 7.3.1的OpenWRT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21364427/