我从官方网站下载了用于我的路由器架构的OpenWRT-SDK。
的OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8 linaro_uClibc-0.9.33.2.Linux-x86_64的
我路由器上的OpenWRT-SDK和OpenWRT具有相同的架构和版本。计算机操作系统是Debian 7。
我的任务:在PC上编译简单程序并在路由器上运行。
开始时我输出了STAGING_DIR环境变量:
导出STAGING_DIR =“/ sdk / ar71xx-generic / staging_dir”
“/ sdk / ar71xx-generic /” - 它的OpenWRT-SDK目录路径。
并在C ++上编写了简单的程序
#include <iostream>
int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}
为了对OpenWRT进行编译,我在源目录的终端中使用了这个命令:
$ STAGING_DIR / toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2 / bin / mips-openwrt-linux-g ++ -o helloworld main.cpp
在输出中我收到了这个错误:
mips-openwrt-linux-g ++:试图执行'/sdk/ar71xx-generic/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/../lib/gcc/mips-openwrt-时出错linux-uclibc / 4.8.3 /../../../../ mips-openwrt-linux-uclibc / bin / as':execv:exec格式错误
但是如果我使用标准的g ++编译器编译我的源代码 - 一切正常。