-
Notifications
You must be signed in to change notification settings - Fork 77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
make时找不到libpcap.a? #2
Comments
这个是因为你直接下的SDK并没有完整的Tool和Toolchain编译环境。一定要按照我的README的方法进行编译。先Git clone官方的SDK,然后编译Tool和Toolchain,最后再编译mentohust。这样在编译mentohust的时候,会自动把依赖的libpcap给编译出来,你直接用下载的sdk包,是找不到libpcap依赖的。 |
已解决,感谢!问大神一个问题:如果想要用SDK直接编译的话,SDK目录下没有tool文件,没办法编译Tool和Toolchain,这样应该怎么办? |
你需要从官方下载Toolchain包,但是强烈不建议这么做。我当时也是这种想法,手动下载SDK及Toolchain进行编译,弄了不知道多久都没成功过,总是缺胳膊少腿。直接用clone的仓库来折腾是最好的选择。而且中途需要下载的dl文件夹我也在百度云分享了,最近还更新了一波,很快的。经验之谈,只是让后面的人少走点弯路。 |
直接下载官方 SDK,然后编译是可以的, 用官方的 SDK编译,你会遇到找不到 libpcap.a 文件 ./script/feeds update -a 到 package/feeds/base/libpcap 目录下面,找到 Makefile ,你会看到下面的内容 define Build/InstallDev
endef define Package/libpcap/install 默认,只编译 libpcap.so ,所以你找不到 libpcap.a, 修改这个 Makefile ,改成下面这样 define Package/libpcap/install
endef 然后你再编译,就会出来 libpcap.a 文件了 当然,这么多年过去了, openwrt 的编译系统发生了很大的变化, 你还会遇到一些 目录名 其实已经改名字了,以至于你找不到东西的问题, 方法一样, 改了名字的目录,你找到新名字,然后修改对应的 Makefile 文件就可以了 下载官方 SDK 最大的好处就是,编译很快, 为了编译一个 mentohust 而去编译整个 toolchain 代价太大了,还是建议直接用官方的 SDK 编译来的快 |
这里是需要修改的编译选项 下面是编译出来的结果 附赠几个我自己编译好的东西,我是为 DW33D 路由器编译的,不知道对你们有没有用 |
不知不觉离当初折腾这玩意儿已经过了4年有余了,当时的编译方法现在落后了也是意料之中。Thanks for sharing! |
@qiang-yu 大神们好,本人交叉编译小白,遇到了本issue中的问题。我理解的前述解决方法:
现象: |
你完全理解错了。qiang-yu大佬的意思是,在#define Package/libpcap/install这一节下面,把 |
多谢 @KyleRicardo 大佬! 路由器是Netgear WNDR3700v2 (WNDR3800),我是先试了试用release版本的SDK没搞定,然后就用你readme中的方法编译了整个tool和toolchain得到了ipk了,就是为了一个依赖这么折腾不太甘心,也想学习提高下,就又和SDK下编译耗上了…… 另外你的方法git clone过来的总是trunk版的repo把,会不会编译出来的ipk在低版本OpenWrt有可能不能用(mentohust应该没问题,如果是其他依赖更多的ipk)。 |
@smallerxie 关闭 |
最近发现当时对于Makefile的理解还不够到位,试了下我的新版Makefile,不需要对其他文件或设置做任何修改,即将发布一个新版本。 |
我用SDK直接编译,在make packages/mentohust/compile V=s时出错,提示
mipsel-openwrt-linux-musl-gcc: error: /mnt/linux/openwrt-sdk-18.06.1-ramips-mt7621_gcc-7.3.0_musl.Linux-x86_64/build_dir/target-mipsel_24kc_musl/libpcap-*/ipkg-install/usr/lib/libpcap.a: No such file or directory
请问这个要怎么解决?
The text was updated successfully, but these errors were encountered: