1、出现该错误表示opencv冲突,该机器上有多个opencv版本。
解决方法:卸载低版本opencv
2、bazel中BUILD的写法:
- copts中放置-I/usr/include/、-D
- linkopts中放置-lopencv_core、-std=c++11、-L/usr/lib64
- 出现编译错误时,可以使用--verbose_failures来打印错误处的详细编译命令,以此查找脚本的错误
bazel build tensorflow/... --verbose_failures
-
1 package( 2 default_visibility = ["//tensorflow_serving:internal"], 3 features = ["no_layering_check"], 4 ) 5 6 licenses(["notice"]) # Apache 2.0 7 8 exports_files(["LICENSE"]) 9 10 load("//tensorflow_serving:serving.bzl", "serving_proto_library") 11 12 filegroup( 13 name = "all_files", 14 srcs = glob( 15 ["**/*"], 16 exclude = [ 17 "**/METADATA", 18 "**/OWNERS", 19 ], 20 ), 21 ) 22 23 cc_library( 24 name = "recog_proc", 25 srcs = glob([ 26 "ImageProc.cpp", 27 ]), 28 hdrs = [ 29 "ImageProc.h", 30 ], 31 copts = [ 32 "-I/usr/include/", 33 "-I/usr/include/ImageMagick/", 34 ], 35 deps = [ 36 "//tensorflow_serving/apis:prediction_service_proto", 37 "@grpc//:grpc++", 38 "@org_tensorflow//tensorflow/core:framework", 39 "@protobuf_archive//:protobuf_lite", 40 ], 41 visibility = [ 42 "//visibility:public", 43 ], 44 ) 45 46 cc_binary( 47 name = "recog_srv_cc", 48 srcs = glob([ 49 "main.cpp", 50 ]), 51 copts = [ 52 "-I/usr/include/", 53 "-L/usr/lib64", 54 "-DSS_LOG_DEFAULT_MODULE=recog", 55 ], 56 linkopts = [ 57 "-lACE", 58 "-lssplatform", 59 "-ljsoncpp", 60 "-lopencv_core", 61 "-lopencv_imgproc", 62 "-lopencv_highgui", 63 "-lopencv_imgcodecs", 64 "-lopencv_photo", 65 "-lMagick++", 66 "-lMagickCore", 67 "-lMagickWand", 68 "-Wl,-no-undefined", 69 "-Wno-reorder", 70 "-std=c++11", 71 "-pthread", 72 "-g", 73 "-L/usr/local/lib64", 74 ], 75 deps = [ 76 ":recog_proc", 77 ], 78 )
- 示例: