C++ 使用工作区在包中导入的线性代数库Eigen

C++ 使用工作区在包中导入的线性代数库Eigen,c++,build,eigen,bazel,C++,Build,Eigen,Bazel,我正在使用(版本0.25.2) 我有以下目录结构(一个名为EigenDemo的主文件夹和一个名为Core的子文件夹,其中包含一些文件): 文件的内容如下所示: Core/main.cpp 核心/构建 (我使用tensorflow提供的一个) 当我尝试构建(bazel build/…)时,我得到以下错误: PS E:\dev\BazelDemos\EigenDemo> bazel build //... Starting local Bazel server and connecting t

我正在使用(版本0.25.2)

我有以下目录结构(一个名为
EigenDemo
的主文件夹和一个名为
Core
的子文件夹,其中包含一些文件):

文件的内容如下所示:

Core/main.cpp

核心/构建

(我使用tensorflow提供的一个)

当我尝试构建(
bazel build/…
)时,我得到以下错误:

PS E:\dev\BazelDemos\EigenDemo> bazel build //...
Starting local Bazel server and connecting to it...
INFO: An error occurred during the fetch of repository 'eigen'
INFO: Call stack for the definition of repository 'eigen':
 - E:/dev/bazeldemos/eigendemo/WORKSPACE:6:1
INFO: Repository 'eigen' used the following cache hits instead of downloading the corresponding file.
 * Hash '3a66f9bfce85aff39bc255d5a341f87336ec6f5911e8d816dd4a3fdc500f8acf' for https://bitbucket.org/eigen/eigen/get/c5e90d9.tar.gz
If the definition of 'eigen' was updated, verify that the hashes were also updated.
ERROR: E:/dev/bazeldemos/eigendemo/Core/BUILD:1:1: no such package '@eigen//': Traceback (most recent call last):
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/http.bzl", line 56
                workspace_and_buildfile(ctx)
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/utils.bzl", line 64, in workspace_and_buildfile
                ctx.symlink(ctx.attr.build_file, "BUILD.bazel")
Unable to load package for //:eigen.BUILD: BUILD file not found in any of the following directories.
 - E:/dev/bazeldemos/eigendemo and referenced by '//Core:EigenTest'
ERROR: Analysis of target '//Core:EigenTest' failed; build aborted: no such package '@eigen//': Traceback (most recent call last):
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/http.bzl", line 56
                workspace_and_buildfile(ctx)
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/utils.bzl", line 64, in workspace_and_buildfile
                ctx.symlink(ctx.attr.build_file, "BUILD.bazel")
Unable to load package for //:eigen.BUILD: BUILD file not found in any of the following directories.
 - E:/dev/bazeldemos/eigendemo
INFO: Elapsed time: 10.959s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (9 packages loaded, 33 targets configured)
当我将所有文件放在一个文件夹中时,一切正常。我想我必须更改生成文件中的
deps
字段:

deps = [
        "@eigen",
    ],

但是我不知道如何(
“//:eigen”
不起作用)。

将一个空的构建文件添加到
EigenDemo
目录:

EigenDemo
|-Core
|  |- BUILD
|  |- main.cpp
|- BUILD  <-------------------- New empty BUILD file
|- eigen.BUILD
|- WORKSPACE
EigenDemo
|-核心
||-建造
||-main.cpp
|-建造
cc_binary(
    name = "EigenDemo",
    srcs = ["main.cpp"],
    copts = ["-Iexternal/eigen"],
    deps = [
        "@eigen",
    ],
)
PS E:\dev\BazelDemos\EigenDemo> bazel build //...
Starting local Bazel server and connecting to it...
INFO: An error occurred during the fetch of repository 'eigen'
INFO: Call stack for the definition of repository 'eigen':
 - E:/dev/bazeldemos/eigendemo/WORKSPACE:6:1
INFO: Repository 'eigen' used the following cache hits instead of downloading the corresponding file.
 * Hash '3a66f9bfce85aff39bc255d5a341f87336ec6f5911e8d816dd4a3fdc500f8acf' for https://bitbucket.org/eigen/eigen/get/c5e90d9.tar.gz
If the definition of 'eigen' was updated, verify that the hashes were also updated.
ERROR: E:/dev/bazeldemos/eigendemo/Core/BUILD:1:1: no such package '@eigen//': Traceback (most recent call last):
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/http.bzl", line 56
                workspace_and_buildfile(ctx)
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/utils.bzl", line 64, in workspace_and_buildfile
                ctx.symlink(ctx.attr.build_file, "BUILD.bazel")
Unable to load package for //:eigen.BUILD: BUILD file not found in any of the following directories.
 - E:/dev/bazeldemos/eigendemo and referenced by '//Core:EigenTest'
ERROR: Analysis of target '//Core:EigenTest' failed; build aborted: no such package '@eigen//': Traceback (most recent call last):
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/http.bzl", line 56
                workspace_and_buildfile(ctx)
        File "C:/users/admin/_bazel_admin/u7yxnnij/external/bazel_tools/tools/build_defs/repo/utils.bzl", line 64, in workspace_and_buildfile
                ctx.symlink(ctx.attr.build_file, "BUILD.bazel")
Unable to load package for //:eigen.BUILD: BUILD file not found in any of the following directories.
 - E:/dev/bazeldemos/eigendemo
INFO: Elapsed time: 10.959s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (9 packages loaded, 33 targets configured)
deps = [
        "@eigen",
    ],
EigenDemo
|-Core
|  |- BUILD
|  |- main.cpp
|- BUILD  <-------------------- New empty BUILD file
|- eigen.BUILD
|- WORKSPACE