首页 文章

使用tensorflow和cuda创建.so文件时出现Bazel错误

提问于
浏览
0

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

这是我的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"
    ],
)

Im getting these errors:

失败:crosstool_wrapper_driver_is_not_gcc失败:错误执行命令(.text 0x20):未定义引用`main'colle2:错误:ld返回1退出状态

1 回答

  • 0

    事实证明你只需要在BUILD上设置linkshared = 1

    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"
        ],
    )
    

相关问题