2016-07-30 83 views
0

我能够使用张量流/ bazel创建.so文件但没有cuda。如果我尝试bazel生成-c opts --config = cuda:lib.so我得到一个未定义的引用main(..)。有没有办法摆脱指向main(...)的错误?Bazel使用张量流和cuda创建.so文件的错误

这里是我的BUILD文件

cc_binary(
    name = "lib.so", 
    srcs = [ 
     "lib.cc", 
     "jni.h", 
     "jni_md.h", 
     "lib.h", 
     "jni_utils.h", "jni_utils.cc" 

    ], 
    copts = tf_copts(), 

    linkopts = ["-shared"], 


    deps = [ 
     "//tensorflow/core:tensorflow", 
     "//tensorflow/core:framework", 
     "//tensorflow/cc:cc_ops", 
     "//tensorflow/core:all_kernels", 
     "@opencv//:opencv" 
    ], 
) 

即时得到这些错误:

失败:crosstool_wrapper_driver_is_not_gcc失败:错误执行命令 (+的.text为0x20):未定义的引用`主 collect2:错误:ld返回1退出状态

+0

即时得到这些错误crosstool_wrapper_driver_is_not_gcc失败:错误执行命令(的.text + 0×20):未定义参考'主 collect2:错误:LD返回1个退出状态 – mrBean

回答

0

原来你只需要设置linkshared = 1到BUILD

cc_binary(
    name = "lib.so", 
    srcs = [ 
     "lib.cc", 
     "jni.h", 
     "jni_md.h", 
     "lib.h", 
     "jni_utils.h", "jni_utils.cc" 

    ], 
    copts = tf_copts(), 

    linkshared = 1, 


    deps = [ 
     "//tensorflow/core:tensorflow", 
     "//tensorflow/core:framework", 
     "//tensorflow/cc:cc_ops", 
     "//tensorflow/core:all_kernels", 
     "@opencv//:opencv" 
    ], 
)