Caffe .build

xiaoxiao2021-02-27  198

当你执行如下命令的时候:

make -j16 && make pycaffe 你会不小心的报一个错误:

CXX/LD -o .build_release/examples/cpp_classification/classification.bin CXX/LD -o .build_release/examples/siamese/convert_mnist_siamese_data.bin CXX/LD -o .build_release/examples/cifar10/convert_cifar_data.bin .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:562: recipe for target '.build_release/tools/caffe.bin' failed make: *** [.build_release/tools/caffe.bin] Error 1 make: *** 正在等待未完成的任务.... .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:562: recipe for target '.build_release/tools/upgrade_net_proto_text.bin' failed make: *** [.build_release/tools/upgrade_net_proto_text.bin] Error 1 .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:567: recipe for target '.build_release/examples/cifar10/convert_cifar_data.bin' failed make: *** [.build_release/examples/cifar10/convert_cifar_data.bin] Error 1 .build_release/examples/cpp_classification/classification.o:在函数‘main’中: classification.cpp:(.text.startup+0x22d):对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:567: recipe for target '.build_release/examples/cpp_classification/classification.bin' failed make: *** [.build_release/examples/cpp_classification/classification.bin] Error 1 .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:567: recipe for target '.build_release/examples/mnist/convert_mnist_data.bin' failed make: *** [.build_release/examples/mnist/convert_mnist_data.bin] Error 1 .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:562: recipe for target '.build_release/tools/extract_features.bin' failed make: *** [.build_release/tools/extract_features.bin] Error 1 .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对Makefile:562: recipe for target '.build_release/tools/upgrade_net_proto_binary.bin' failed ‘cv:make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1 :imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:562: recipe for target '.build_release/tools/convert_imageset.bin' failed make: *** [.build_release/tools/convert_imageset.bin] Error 1 .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:562: recipe for target '.build_release/tools/compute_image_mean.bin' failed make: *** [.build_release/tools/compute_image_mean.bin] Error 1 .build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator<unsigned char> >&, std::vector<int, std::allocator<int> > const&)’未定义的引用 .build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用 collect2: error: ld returned 1 exit status Makefile:567: recipe for target '.build_release/examples/siamese/convert_mnist_siamese_data.bin' failed make: *** [.build_release/examples/siamese/convert_mnist_siamese_data.bin] Error 1

那是因为你用了opencv 3.x的缘故,只需在Makefile的最后一行加上:

LIBRARIES += glog gflags protobuf leveldb snappy \ lmdb boost_system boost_filesystem hdf5_hl hdf5 m \ opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_videoio

然后:

make clean make -j16 && make pycaffe 就可以重新运行通过了哈,亲测可用

转载请注明原文地址: https://www.6miu.com/read-9932.html

最新回复(0)