Bazel BUILD link Intel Mkl

问题描述 投票:0回答:1

我正在写一个简单的Bazel BUILD文件,但我必须包含MKL库,我的main.c包含了这个库,最后3个库位于模块环境设置的$MKLROOT中。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include "omp.h"
#include "mkl.h"
#include "mkl_types.h"
#include "mkl_dfti.h"

最后3个库位于$MKLROOT中,由模块环境设置,我的bazel构建文件是。

load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")


cc_library(

    name = "mkl_headers",
    srcs = glob(["include/*(.cc|.cpp|.cxx|.c++|.C|.c|.h|.hh|.hpp|.ipp|.hxx|.inc|.S|.s|.asm|.a|.lib|.pic.a|.lo|.lo.lib|.pic.lo|.so|.dylib|.dll|.o|.obj|.pic.o)"]),
    includes = ["include"],
    visibility = ["//visibility:public"],
)

cc_library(
    name = "mkl_libs_linux",
    srcs = [
        "lib/libiomp5.so",
        "lib/libmklml_intel.so",
    ],
    visibility = ["//visibility:public"],
)

cc_binary(
    name = "mklfft",
    srcs = ["main.c"],
    deps = [
        ":mkl_libs_linux"
    ],
)

我试着从BUILD tensorflow mkl文件中举例,但它非常复杂。

bazel构建命令返回。

INFO: Analyzed target //mklfft:mklfft (2 packages loaded, 8 targets configured).
INFO: Found 1 target...
ERROR: missing input file 'mklfft/mkl.h', owner: '//mklfft:mkl.h'
ERROR: missing input file 'mklfft/mkl_dfti.h', owner: '//mklfft:mkl_dfti.h'
ERROR: missing input file 'mklfft/mkl_types.h', owner: '//mklfft:mkl_types.h'
ERROR: /C/mklfft/BUILD:6:1: //mklfft:mkl: missing input file '//mklfft:mkl.h'
ERROR: /C/mklfft/BUILD:6:1: //mklfft:mkl: missing input file '//mklfft:mkl_dfti.h'
ERROR: /C/mklfft/BUILD:6:1: //mklfft:mkl: missing input file '//mklfft:mkl_types.h'
ERROR: missing input file 'mklfft/readFile.c', owner: '//mklfft:readFile.c'
Target //mklfft:mklfft failed to build
Use --verbose_failures to see the command lines of failed build steps.
ERROR: /C/mklfft/BUILD:6:1 3 input file(s) do not exist
INFO: Elapsed time: 0.342s, Critical Path: 0.03s
INFO: 0 processes.

你能说明一下用bazel链接外部共享库的方法吗?

build include bazel intel-mkl mklink
1个回答
1
投票

用 "liblibiomp5.so"、"liblibmklml_intel.so "来链接是不够的,还需要加上libmkl_intel_thread.so和-libmkl_core.so。你需要添加libmkl_intel_thread.so和-libmkl_core.so,请查看mkl链接器顾问,看看mkl建议使用什么。https:/software.intel.comcontentwwwusendeveloparticlesintel-mkl-link-line-advisor.html。

© www.soinside.com 2019 - 2024. All rights reserved.