这个是在我在Openwrt的SDK下编译模块的时候碰到的问题。
缺少类库,然后其实我发现我的类库在系统里是存在的:
locate libc.so.6
结果:
/lib/i386-linux-gnu/libc.so.6
/lib64/libc.so.6
看~ 明显存在,我用的应该是上面的那个类库,然后我弄了一晚上没弄好,今天所有工作做完终于弄好了。我做的工作包括这些:
第一步:
把/lib/i386-linux-gnu/libc.so.6这个文件拷贝到/home/user/attitude/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib这里。其中attitude是我的配置的Openwrt的编译环境。
cp /lib/i386-linux-gnu/libc.so.6 /home/user/attitude/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib
第二步:
在你写的代码文件夹下(我写的是个helloworld)下的Makefile里
增加:DEPENDS:=+libc
就是在
define Package/helloworld
SECTION:=utils
CATEGORY:=Utilities
TITLE:=Helloworld -- prints a snarky message
DEPENDS:=+libc
endef
这个define下面。
第三步:也是在Makefile里增加:
define Package/helloworld/install
$(INSTALL_DIR) $(1)/bin
$(CP) /lib/i386-linux-gnu/libc.so.6 $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/bin/
endef
这里多了一行$(CP)的代码。
最后一步:
在/home/user/attitude/staging_dir/target-mips_r2_uClibc-0.9.33.2/pkginfo下的libc.provides文件里增加两行:
/lib/i386-linux-gnu/libc.so.6
libc.so.6
这样子就解决了~
这里有些步骤不需要做。。不过我也不知道哪步是不需要的~~
Package helloworld is missing dependencies for the following libraries: libc.so.6