xiangweizeng / darknet2ncnn

Darknet2ncnn converts the darknet model to the ncnn model

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

make cifar.cifar 和 make yolov3-tiny.coco失败

globalmaster opened this issue · comments

你好,我在ubuntu16.04上运行readme的第10条:make cifar.cifar 时报错:make: *** No rule to make target 'cifar.cifar'. Stop. 在运行第11条时也遇到同样的问题:make: *** No rule to make target 'cifar.cifar'. Stop. 请问这是什么情况?谢谢!

对不起,我看错了,应该在example文件夹中make

没关系,能正常运行吧, 运行环境不一样可能会出现各种问题

没关系,能正常运行吧, 运行环境不一样可能会出现各种问题

可以正常运行,谢谢!

你好,我想再请教一个问题。我现在已经知道了编译example文件夹中的yolov2.cpp时需要包含的头文件和链接的库,直接在命令行运行的话应该是这样:g++ -o yolo yolov2.cpp pkg-config --cflags --libs opencv -I ../include -I ../ncnn/src/ -I ../ncnn/build/install/include/ -L .. -L ../ncnn/build/install/lib/ -ldarknet2ncnn -lncnn -lm -pthread -fopenmp。现在我想在Android Studio中调用yolov2.cpp,运行其中的函数进行目标检测,我已經包含了对应的头文件,请问该如何链接两个库?

报错如下:
[47/47] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so
FAILED: : && /home/jack/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ --sysroot=/home/jack/Android/Sdk/ndk-bundle/sysroot -fPIC -isystem /home/jack/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=19 -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -fopenmp -DOMP_NUM_THREADS=8 -Wall -Wno-unknown-pragmas -Wfatal-errors -fPIC -O3 -fstrict-aliasing -fprefetch-loop-arrays -fopenmp -fexceptions -Dlinux -fsigned-char -Os -DNDEBUG -Wl,--exclude-libs,libgcc.a --sysroot /home/jack/Android/Sdk/ndk-bundle/platforms/android-19/arch-arm -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/activation_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/activations.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/avgpool_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/batchnorm_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/blas.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/box.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/col2im.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/connected_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/convolutional_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/cost_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/crnn_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/crop_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/cuda.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/data.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/deconvolutional_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/demo.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/detection_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/dropout_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/gemm.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/gru_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/im2col.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/image.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/iseg_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/l2norm_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/list.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/local_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/logistic_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/lstm_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/matrix.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/maxpool_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/network.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/normalization_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/option_list.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/parser.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/region_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/reorg_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/rnn_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/route_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/shortcut_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/softmax_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/tree.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/upsample_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/utils.c.o CMakeFiles/native-lib.dir/src/main/cpp/darknet/src/yolo_layer.c.o CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -L/media/jack/code/androidstudio/YoloOnLine/app/src/main/cpp ../../../../src/main/jniLibs/armeabi-v7a/libopencv_java3.so -Wl,-Bstatic -lncnn -Wl,-Bdynamic -ljnigraphics -lgomp /home/jack/Android/Sdk/ndk-bundle/platforms/android-19/arch-arm/usr/lib/liblog.so -lm "/home/jack/Android/Sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_static.a" && :
/home/jack/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: warning: skipping incompatible /media/jack/code/androidstudio/YoloOnLine/app/src/main/cpp/libncnn.a while searching for ncnn
/home/jack/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lncnn
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::Net()'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'register_darknet_layer(ncnn::Net&)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::load_param(char const*)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::load_model(char const*)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::find_layer_index_by_name(char const*) const'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Mat::from_pixels(unsigned char const*, int, int, int, ncnn::Allocator*)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Mat::substract_mean_normalize(float const*, float const*)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::create_extractor() const'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Extractor::input(char const*, ncnn::Mat const&)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Extractor::set_light_mode(bool)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Extractor::set_num_threads(int)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Extractor::extract(char const*, ncnn::Mat&)'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::~Net()'
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o:native-lib.cpp:function Java_ch_hepia_iti_opencvnativeandroidstudio_MainActivity_YoloOnLine: error: undefined reference to 'ncnn::Net::~Net()'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

你需要先编译好libdarknet2ncnn.a 及libncnn.a, 然后才能进行连接, ncnn在android上的编译可以查看官方说明, 至于libdarknet2ncnn.a 你可以将相关的源文件全部放入项目中直接编译即可, 不单独编译为libdarknet2ncnn.a

嗯好,我已經解决了,谢谢你