Closed nature2608 closed 5 years ago
请给出当前编译环境的信息以及具体是要交叉编译到哪个平台,没有这些信息只有这些报错文本不容易确定问题到底是什么原因造成的。
不过从这段报错信息中可以看到consider recompiling with interlinking enabled
这个提示,说明当前编译环境下可能需要开启interlinking
这个选项才能继续进行编译。
可以参考一下下方链接中提供的信息,试试能否成功编译:
https://groups.google.com/forum/#!topic/libtins/rPaKxAnjSgE
@LGiki 问题依旧,系统为ubuntu 18.04,操作完全按照readme执行,在没有交叉编译环境时可以顺利编译。sdk使用的是openwrt 18.06.02 ar71xx。
你有尝试那个链接里面提到的一些编译参数吗? 我这边在 ArchLinux 下按照 README 中的方法交叉编译到 ar71xx 是能正常编译的。 我明天试试在 Ubuntu 18.04 下进行交叉编译吧。 或者我可以把我编译好的文件发给你。
@LGiki 我尝试了加上-DCMAKE_CXX_FLAGS="-minterlink-mips16"
但是并不奏效,
我换成ArchLinux试试。方便的话可以先发给我二进制吗?邮箱260821425@qq.com,谢谢你。
已发送。 因为明天还得早起,已经躺床上准备睡了,所以就先用手机从我路由器上把我之前编译好的下载下来发给你了。
@LGiki 我同样在ubuntu 18.04下用潘多拉https://downloads.pangubox.com/pandorabox/19.01/targets/ralink/mt7620/PandoraBox-SDK-ralink-mt7620_gcc-5.5.0_uClibc-1.0.x.Linux-x86_64-2018-12-31-git-4b6a3d5ca.tar.xz 编译,但提示是iconv的问题:
[ 73%] Linking C executable ../bin/jmusupplicant CMakeFiles/jmusupplicant.dir/functions.c.o: In function
code_convert': functions.c:(.text+0x1c0): undefined reference to
libiconv_open' functions.c:(.text+0x204): undefined reference tolibiconv' functions.c:(.text+0x214): undefined reference to
libiconv_close' collect2: error: ld returned 1 exit status src/CMakeFiles/jmusupplicant.dir/build.make:200: recipe for target 'bin/jmusupplicant' failed make[2]: [bin/jmusupplicant] Error 1 CMakeFiles/Makefile2:87: recipe for target 'src/CMakeFiles/jmusupplicant.dir/all' failed make[1]: [src/CMakeFiles/jmusupplicant.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2
@AmadeusGhost 请问你是交叉编译的吗?要是在系统下直接编译是没问题的。
我刚刚使用 https://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/generic/openwrt-sdk-18.06.2-ar71xx-generic_gcc-7.3.0_musl.Linux-x86_64.tar.xz 这个工具链在 ArchLinux 上交叉编译到 AR71XX 是没有问题的,如下图:
至于你后面说的 iconv
的问题,这个你可以选择:
@LGiki 在官网出现下了18.06的sdk重新试了下果然可以了,看来iconv的问题是潘多拉的编译链太老了。不是很懂的cmake怎么写规则,要怎么链接libiconv。
:beers: 可以了就好。如果没有其它问题的话,到时候麻烦 Repo 主关闭一下这个 issue。
@AmadeusGhost 我本来就是想在潘多拉使用的,但是潘多拉sdk没有iconv,所以编译不了,我也不知怎么链接iconv,所以改用了较新的musl编译器的sdk