在编译一个项目的时候遇到编译错误
编译环境 ubuntu 10.10 Android2.3.4编译错误如下:
target StaticLib: librecovery_updater_htc (out/target/product/t34h/obj/STATIC_LIBRARIES/librecovery_updater_htc_intermediates/librecovery_updater_htc.a)
target StaticLib: libsafe_iop (out/target/product/t34h/obj/STATIC_LIBRARIES/libsafe_iop_intermediates/libsafe_iop.a)
target StaticLib: libspeex (out/target/product/t34h/obj/STATIC_LIBRARIES/libspeex_intermediates/libspeex.a)
target StaticLib: libutils (out/target/product/t34h/obj/STATIC_LIBRARIES/libutils_intermediates/libutils.a)
target StaticLib: libvold (out/target/product/t34h/obj/STATIC_LIBRARIES/libvold_intermediates/libvold.a)
host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
host SharedLib: libneo_cs (out/host/linux-x86/obj/lib/libneo_cs.so)
true
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
/usr/bin/ld: skipping incompatible out/host/linux-x86/obj/lib/libneo_util.so when searching for -lneo_util
/usr/bin/ld: cannot find -lneo_util
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cs.so] 错误 1
make: *** 正在等待未完成的任务....-----------------------------------------------------------------------------------------请高手指点一下
google 不到缺少那个包。
编译环境 ubuntu 10.10 Android2.3.4编译错误如下:
target StaticLib: librecovery_updater_htc (out/target/product/t34h/obj/STATIC_LIBRARIES/librecovery_updater_htc_intermediates/librecovery_updater_htc.a)
target StaticLib: libsafe_iop (out/target/product/t34h/obj/STATIC_LIBRARIES/libsafe_iop_intermediates/libsafe_iop.a)
target StaticLib: libspeex (out/target/product/t34h/obj/STATIC_LIBRARIES/libspeex_intermediates/libspeex.a)
target StaticLib: libutils (out/target/product/t34h/obj/STATIC_LIBRARIES/libutils_intermediates/libutils.a)
target StaticLib: libvold (out/target/product/t34h/obj/STATIC_LIBRARIES/libvold_intermediates/libvold.a)
host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
host SharedLib: libneo_cs (out/host/linux-x86/obj/lib/libneo_cs.so)
true
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
/usr/bin/ld: skipping incompatible out/host/linux-x86/obj/lib/libneo_util.so when searching for -lneo_util
/usr/bin/ld: cannot find -lneo_util
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cs.so] 错误 1
make: *** 正在等待未完成的任务....-----------------------------------------------------------------------------------------请高手指点一下
google 不到缺少那个包。
解决方案 »
- MediaRecorder类中setVideoFrameRate方法的问题
- 关于蓝牙开发的一点基础问题
- 求助调用webservice返回值问题
- AlertDialog背景色
- Android开发 Eclipse之前调试logCat能正常输出,某次重启电脑后,LogCat没有任何信息输出了
- 一个Android程序的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- android2.2能将软件安装在SD卡中吗?
- cocos2d移植
- 统计arraylist数据遇到的问题
- 求救啊,这个SetOnClickListener里面的buttonlistener为什么会报错啊
- ListView中添加Button控件问题
- 为什么手机程序下载时需要指定手机型号?
-lneo_util 这有没有指定库的搜索路径? 搜索路径中有没有libneo_util.so?
这个工程的确没有生成libneo_util.so,我拿到的是在别人机器上已经编译通过的代码,未做任何改动,就是怀疑编译环境还是有问题,但是在这个环境下,编译原生的android2.3,4.0都没有问题。需要的库在10.10下无法安装
错误信息如下:现在没有可用的软件包 lib64stdc++6,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到E: 未发现软件包 lib64z1-dev
E: 未发现软件包 libc6-dev-amd64
E: 软件包 lib64stdc++6 没有可供安装的候选者在网上也没有查到如何解决,还望继续指点...
-lneo_util 这有没有指定库的搜索路径? 搜索路径中有没有libneo_util.so?
需要添加编译指令
对编译这块不是很熟,怎么找到对应的makefile?
这个是编译libneo_cs 在external\clearsilver\cs 目录下makefile,
不知道对不对
libneo_util.so这个文件在工程里找不到
--------------------
ifeq ($(NEOTONIC_ROOT),)
NEOTONIC_ROOT = ..
endifinclude $(NEOTONIC_ROOT)/rules.mkCS_LIB = $(LIB_DIR)libneo_cs.a
CS_SRC = csparse.c
CS_OBJ = $(CS_SRC:%.c=%.o)CSTEST_EXE = cstest
CSTEST_SRC = cstest.c
CSTEST_OBJ = $(CSTEST_SRC:%.c=%.o)CSR_EXE = cs
CSR_SRC = cs.c
CSR_OBJ = $(CSR_SRC:%.c=%.o)CSDUMP_EXE = csdump
CSDUMP_SRC = csdump.c
CSDUMP_OBJ = $(CSDUMP_SRC:%.c=%.o)LIBS += -lneo_cs -lneo_utl # -lefenceTARGETS = $(CS_LIB) $(CSTEST_EXE) $(CSR_EXE) testCS_TESTS = test.cs test2.cs test3.cs test4.cs test5.cs test6.cs test7.cs \
test8.cs test9.cs test10.cs test11.cs test12.cs test13.cs \
test14.cs test15.cs test16.cs test17.cs test18.cs test19.cs \
test_var.cs test_paren.cs test_chuck.cs test_trak1.cs test_iter.cs \
test_each_array.cs test_name.cs test_with.cs test_numbers.cs \
test_splice.cs test_joo.cs test_first_last.cs test_abs_max_min.cs \
test_comma.cs test_macro_set.cs test_func.cs test_escape.cs \
test_uvar.cs test_crc.cs
all: $(TARGETS)$(CS_LIB): $(CS_OBJ)
$(AR) $@ $(CS_OBJ)
$(RANLIB) $@$(CSTEST_EXE): $(CSTEST_OBJ) $(CS_LIB)
$(LD) $@ $(CSTEST_OBJ) $(LDFLAGS) $(LIBS) # -lefence$(CSR_EXE): $(CSR_OBJ) $(CS_LIB)
$(LD) $@ $(CSR_OBJ) $(LDFLAGS) $(LIBS) # -lefence$(CSDUMP_EXE): $(CSDUMP_OBJ) $(CS_LIB)
$(LD) $@ $(CSDUMP_OBJ) $(LDFLAGS) $(LIBS)## BE VERY CAREFUL WHEN REGENERATING THESE
gold: $(CSTEST_EXE)
@for test in $(CS_TESTS); do \
rm -f $$test.gold; \
./cstest test.hdf $$test > $$test.gold; \
done; \
./cstest test_tag.hdf test_tag.cs > test_tag.cs.gold
@echo "Generated Gold Files"test: $(CSTEST_EXE) $(CS_TESTS)
@echo "Running cs regression tests"
@failed=0; \
for test in $(CS_TESTS); do \
rm -f $$test.out; \
./cstest test.hdf $$test > $$test.out 2>&1; \
diff $$test.out $$test.gold 2>&1 > /dev/null; \
return_code=$$?; \
if [ $$return_code -ne 0 ]; then \
diff $$test.gold $$test.out > $$test.err; \
echo "Failed Regression Test: $$test"; \
echo " See $$test.out and $$test.err"; \
failed=1; \
fi; \
done; \
rm -f test_tag.cs.out; \
./cstest test_tag.hdf test_tag.cs> test_tag.cs.out 2>&1; \
diff test_tag.cs.out test_tag.cs.gold; \
return_code=$$?; \
if [ $$return_code -ne 0 ]; then \
echo "Failed Regression Test: test_tag.cs"; \
failed=1; \
fi; \
if [ $$failed -eq 1 ]; then \
exit 1; \
fi;
@touch test
@echo "Passed"
install: all
$(NEOTONIC_ROOT)/mkinstalldirs $(DESTDIR)$(cs_includedir)/cs
$(INSTALL) -m 644 cs.h $(DESTDIR)$(cs_includedir)/cs
$(INSTALL) -m 644 $(CS_LIB) $(DESTDIR)$(libdir)
$(INSTALL) $(CSTEST_EXE) $(DESTDIR)$(bindir)
$(INSTALL) $(CSR_EXE) $(DESTDIR)$(bindir)clean:
$(RM) core *.odistclean:
$(RM) Makefile.depends $(TARGETS) core *.o *.out--------------------
如下:
问题二:
cannot find -lneo_util
需要JDK1.6
被引用的库安装出问题一般都是安装第三方程序,加载第三方源造成的。先清理掉第三方源,更新源,然后在安装。
或者在ubuntu的中直接搜能用的libneo_util包试试
编译环境 64位ubuntu, jdk1.6 .
问一下 怎么搜能用的libneo_util包?
清理第三方源是指sourcelist里添加的吗?
谢谢
在新德里软件中心中找找看
第三方源就是自己手动添加到sourcelist中的源
之前在64位系统中编译2.3的版本一直没有问题,这次做一个基于三星v210的pad项目,遇到这么个问题,郁闷。
之前加了一个163的镜像,不知道是不是这个影响,等周一到公司,试验一下
。
这个几个文件分别在\external\clearsilver\cs(cgi,java-jni,util)路径的Andriod.mk有,
我就是更改:
# This forces a 64-bit build for Java6
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64# This forces a 32-bit build for Java6
#LOCAL_CFLAGS += -m32
#LOCAL_LDFLAGS += -m32可以了。
host C: libneo_cgi <= external/clearsilver/cgi/date.c
host C: libneo_cgi <= external/clearsilver/cgi/rfc2388.c
host SharedLib: libneo_cgi (out/host/linux-x86/obj/lib/libneo_cgi.so)
/usr/bin/ld: skipping incompatible out/host/linux-x86/obj/lib/libneo_util.so when searching for -lneo_util
/usr/bin/ld: cannot find -lneo_util
/usr/bin/ld: skipping incompatible out/host/linux-x86/obj/lib/libneo_cs.so when searching for -lneo_cs
/usr/bin/ld: cannot find -lneo_cs
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] Error 1
tar: /home/jacobin/pad_project/android2.3.4/out/target/product/t34h/system/bin: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
make update-api
make
在make update-api过程中报错
--------------------------------
/usr/bin/ld: skipping incompatible out/host/linux-x86/obj/lib/libneo_util.so when searching for -lneo_util
/usr/bin/ld: cannot find -lneo_util
/usr/bin/ld: skipping incompatible out/host/linux-x86/obj/lib/libneo_cs.so when searching for -lneo_cs
/usr/bin/ld: cannot find -lneo_cs
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] 错误 1
非常感谢各位大虾..总结,拿到的这套代码之前是在32位机器上进行编译的,所以\external\clearsilver\cs(cgi,java-jni,util)\Android.mk文件里用的32位的选项,但是我用的是64位的机器,从而导致编译出错。
其实最早编译2.3时,当时没有64位机器,这几个文件都是从64改成32位,才能编译通过,这次反过来,就没有考虑到,看来还是经验不够。