【发布时间】:2011-04-07 10:24:24
【问题描述】:
我有一个来自 Android 的 OpenCV 端口的 make 文件。由于这个项目似乎已经死了,没有任何更新,最后支持的 NDK 版本是 4b。使用这个 NDK 版本,一切都可以编译,只要找到,代码也可以工作。但是,如果我使用较新版本构建它,我会收到以下错误。
C:/Android/NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe: cannot find -lcxcore
collect2: ld returned 1 exit status
make: *** [/cygdrive/c/Users/<Name>/workspace/<Project>/obj/local/armeabi/libopencv.so] Error 1
我认为是由这行引起的:
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -ldl -llog \
-L$(TARGET_OUT) -lcxcore -lcv -lcvaux -lcvml -lcvhighgui
但是,当我检查 $(TARGET_OUT) 指向的位置并查看库是否在那里时,它是可用的。我认为问题在于我正在获取一个 libcxcore.a 文件,并且可能需要一个 libccore.so 文件才能使其正常工作。但我不太确定。
从我在互联网上发现的情况来看,链接器可能会由于多种原因导致问题,我真的想知道这是怎么回事,因为代码本身工作得很好。我希望有人能告诉我如何更改我的 make 文件以便它也可以与较新的 NDK 一起使用,或者为我指出在哪里寻找问题的方向。
【问题讨论】:
标签: opencv makefile android-ndk