Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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
如何在OpenWRT中使用gcc进行编译_Gcc_Openwrt - Fatal编程技术网

如何在OpenWRT中使用gcc进行编译

如何在OpenWRT中使用gcc进行编译,gcc,openwrt,Gcc,Openwrt,我有一个“Linksys WRT1200AC”路由器,运行“OpenWrt混沌平静器15.05.1”(mvebu架构),并安装了“gcc_4.8.3-1_mvebu.ipk”和所有其他必需的软件包 我试着用以下命令编译一个C源文件(很简单,类似于“hello world”): #gcc mysource.c -o myprogram #chmod +x myprogram #./myprogram myprogram: line 1: syntax error: unexpected word

我有一个“Linksys WRT1200AC”路由器,运行“OpenWrt混沌平静器15.05.1”(mvebu架构),并安装了“gcc_4.8.3-1_mvebu.ipk”和所有其他必需的软件包

我试着用以下命令编译一个C源文件(很简单,类似于“hello world”):

#gcc mysource.c -o myprogram
#chmod +x myprogram

#./myprogram
myprogram: line 1: syntax error: unexpected word (expecting ")")
编译器没有给我错误或警告,但程序无法启动。 这就像将.ipk包从另一个arch安装到路由器。 因此,我认为gcc正在为不同的CPU/Arch编译我的源代码。 路由器cpu为:“Marvell Armada 38X双核@1.33 GHz(88F6820-A0 C133)”

使用正确的CPU/Arch选项在openwrt中编译源代码的正确命令行是什么? 我尝试了不同的“-march/-mcpu”,但没有成功

这是关于以下内容的详细说明:

# gcc -v mysource.c -o myprogram
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/lto-wrapper
Target: arm-openwrt-linux-uclibcgnueabi
Configured with: /home/buildbot/slave-local/mvebu_generic/build/build_dir/target-arm_cortex-a9+vfpv3_uClibc-0.9.33.2_eabi/gcc-4.8.3/configure --target=arm-openwrt-linux --host=arm-openwrt-linux --build=x86_64-linux-gnu --program-prefix= --program-suffix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls --build=x86_64-linux-gnu --host=arm-openwrt-linux-uclibcgnueabi --target=arm-openwrt-linux-uclibcgnueabi --enable-languages=c,c++ --with-bugurl=https://dev.openwrt.org/ --with-pkgversion='OpenWrt GCC 4.8.3' --enable-shared --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-nls --disable-libmudflap --disable-multilib --disable-libgomp --disable-libquadmath --disable-libssp --disable-decimal-float --disable-libstdcxx-pch --with-host-libstdcxx=-lstdc++ --prefix=/usr --libexecdir=/usr/lib --with-float=soft
Thread model: posix
gcc version 4.8.3 (OpenWrt GCC 4.8.3)
COLLECT_GCC_OPTIONS='-v' '-o' 'myprogram' '-mfloat-abi=soft' '-mtls-dialect=gnu'
 /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/cc1 -quiet -v -imultilib . -imultiarch arm-linux-gnueabi mysource.c -quiet -dumpbase myprogram.c -mfloat-abi=soft -mtls-dialect=gnu -auxbase mysource -version -o /tmp/ccojawQz.s
GNU C (OpenWrt GCC 4.8.3) version 4.8.3 (arm-openwrt-linux-uclibcgnueabi)
        compiled by GNU C version 4.8.3, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabi"
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/../../../../arm-openwrt-linux-uclibcgnueabi/include"
ignoring nonexistent directory "/usr/include/arm-linux-gnueabi"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/include
 /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/include-fixed
 /usr/include
End of search list.
GNU C (OpenWrt GCC 4.8.3) version 4.8.3 (arm-openwrt-linux-uclibcgnueabi)
        compiled by GNU C version 4.8.3, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
#gcc-v mysource.c-o myprogram
使用内置规格。
收集\u GCC=GCC
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm openwrt linux uclibcgnueabi/4.8.3/LTO-WRAPPER
目标:arm openwrt linux uclibcgnueabi
配置为:/home/buildbot/slave local/mvebu\u generic/build/build\u dir/target-arm\u cortex-a9+vfpv3\u uClibc-0.9.33.2\u eabi/gcc-4.8.3/configure--target=arm openwrt linux--host=arm openwrt linux--build=x86\u 64-linux-gnu--program prefix=--prefix=/usr--exec prefix=/usr--bindir/usr=/usr/bin--sbindir=/usr/n--execdir--sysconfdir=/etc--datadir=/usr/share--localstatedir=/var--mandir=/usr/man--infodir=/usr/info--disable nls--build=x86_64-linux-gnu--host=arm openwrt linux uclibcgnueabi--target arm openwrt linux uclibcgnueabi--enable languages,C++——带有BuGURL=https://dev.openwrt.org/ --使用pkgversion='OpenWrt GCC 4.8.3'--启用共享--disable-uu cxa_uatexit--启用目标optspace--使用gnu ld--禁用nls--禁用libmudflap--禁用多库--禁用libgomp--禁用libquadmath--禁用libssp--禁用十进制浮点--禁用libstdcxx pch--使用主机libstdcxx=-lstdc++--前缀=/usr--libexecdir=/usr/lib--with float=soft
线程模型:posix
gcc版本4.8.3(OpenWrt gcc 4.8.3)
COLLECT_GCC_OPTIONS='-v'-o''myprogram'-mfloat abi=soft'-mtls方言=gnu'
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/cc1-quiet-v-imultilib-imultimarch arm linux gnueabi mysource.c-quiet-dumpbase myprogram.c-mfloat abi=soft-mtls方言=gnu-auxbase mysource-version-o/tmp/ccojawQz.s
GNU C(OpenWrt GCC 4.8.3)版本4.8.3(arm OpenWrt linux uclibcgnueabi)
由GNU C版本4.8.3、GMP版本4.3.2、MPFR版本2.4.2、MPC版本0.8.1编译
GGC启发式:--param GGC min expand=30--param GGC min heapsize=4096
忽略不存在的目录“/usr/local/include/arm-linux-gnueabi”
忽略不存在的目录“/usr/local/include”
忽略不存在的目录“/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/../../../../../../arm-openwrt-linux-uclibcgnueabi/include”
忽略不存在的目录“/usr/include/arm-linux-gnueabi”
#包括“…”搜索从这里开始:
#包括搜索从这里开始:
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/include
/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/include-fixed
/usr/包括
搜索列表结束。
GNU C(OpenWrt GCC 4.8.3)版本4.8.3(arm OpenWrt linux uclibcgnueabi)
由GNU C版本4.8.3、GMP版本4.3.2、MPFR版本2.4.2、MPC版本0.8.1编译
GGC启发式:--param GGC min expand=30--param GGC min heapsize=4096

好吧,看来是这样的;)


file./myprogram
说明了什么?这是输出:
myprogram:line 1:语法错误:意外单词(预期“)”
我使用IDA反汇编编译的程序,然后将其与本机OpenWRT程序(来自同一mvebu Arch)进行比较
# gcc -v mysource.c -o myprogram
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/lto-wrapper
Target: arm-openwrt-linux-uclibcgnueabi
Configured with: /home/buildbot/slave-local/mvebu_generic/build/build_dir/target-arm_cortex-a9+vfpv3_uClibc-0.9.33.2_eabi/gcc-4.8.3/configure --target=arm-openwrt-linux --host=arm-openwrt-linux --build=x86_64-linux-gnu --program-prefix= --program-suffix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls --build=x86_64-linux-gnu --host=arm-openwrt-linux-uclibcgnueabi --target=arm-openwrt-linux-uclibcgnueabi --enable-languages=c,c++ --with-bugurl=https://dev.openwrt.org/ --with-pkgversion='OpenWrt GCC 4.8.3' --enable-shared --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-nls --disable-libmudflap --disable-multilib --disable-libgomp --disable-libquadmath --disable-libssp --disable-decimal-float --disable-libstdcxx-pch --with-host-libstdcxx=-lstdc++ --prefix=/usr --libexecdir=/usr/lib --with-float=soft
Thread model: posix
gcc version 4.8.3 (OpenWrt GCC 4.8.3)
COLLECT_GCC_OPTIONS='-v' '-o' 'myprogram' '-mfloat-abi=soft' '-mtls-dialect=gnu'
 /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/cc1 -quiet -v -imultilib . -imultiarch arm-linux-gnueabi mysource.c -quiet -dumpbase myprogram.c -mfloat-abi=soft -mtls-dialect=gnu -auxbase mysource -version -o /tmp/ccojawQz.s
GNU C (OpenWrt GCC 4.8.3) version 4.8.3 (arm-openwrt-linux-uclibcgnueabi)
        compiled by GNU C version 4.8.3, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring nonexistent directory "/usr/local/include/arm-linux-gnueabi"
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/../../../../arm-openwrt-linux-uclibcgnueabi/include"
ignoring nonexistent directory "/usr/include/arm-linux-gnueabi"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/include
 /usr/lib/gcc/arm-openwrt-linux-uclibcgnueabi/4.8.3/include-fixed
 /usr/include
End of search list.
GNU C (OpenWrt GCC 4.8.3) version 4.8.3 (arm-openwrt-linux-uclibcgnueabi)
        compiled by GNU C version 4.8.3, GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
gcc -mabi=aapcs-linux mysource.c -o myprogram