【问题标题】:Bazel Errors on creating .so file with tensorflow and cuda使用 tensorflow 和 cuda 创建 .so 文件时出现 Bazel 错误
【发布时间】:2016-12-05 00:37:43
【问题描述】:

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

这是我的构建文件

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): 未定义的对“main”的引用 collect2:错误:ld 返回 1 个退出状态

【问题讨论】:

  • 我收到这些错误 crosstool_wrapper_driver_is_not_gcc failed: error execution command (.text+0x20): undefined reference to `main' collect2: error: ld returned 1 exit status

标签: c++ cuda java-native-interface tensorflow


【解决方案1】:

原来你只需要在 BUILD 上设置 linksshared = 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"
    ],
)

【讨论】:

    猜你喜欢
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2019-02-11
    相关资源
    最近更新 更多