3

我正在尝试用构建 Eigen 。不幸的是,Eigen 有一个不寻常的标题结构:

Eigen/src/Cholesky/LLT.h
Eigen/src/Cholesky/LDLT.h
Eigen/src/Cholesky/...
Eigen/src/...
Eigen/Array
Eigen/Cholesky
Eigen/Core
Eigen/...
...

您可以浏览GitHub 上的存储库

我需要在导出的标头中包含Eigen/CholeskyEigen/Cholesky/LLT.h,但巴克认为这是一个冲突:

prebuilt_cxx_library(
  name = 'eigen',
  header_only = True,
  header_namespace = 'Eigen', 
  exported_headers = subdir_glob([
    ('Eigen', '*'),
    ('Eigen/src', '**/*.h'),
  ]), 
  visibility = [
    'PUBLIC',
  ],
)

java.nio.file.FileAlreadyExistsException: .../eigen/buck-out/gen/eigen#default,headers/Eigen/Cholesky

如何在 Buck 中拥有与导出的标头同名的文件夹和文件?

4

1 回答 1

4

src 文件夹应该是导出的一部分,试试这个:

prebuilt_cxx_library(
  name = 'eigen',
  header_only = True,
  header_namespace = 'Eigen', 
  exported_headers = subdir_glob([
    ('Eigen', '*'),
    ('Eigen', 'src/**/*.h'),
  ]), 
  visibility = [
    'PUBLIC',
  ],
)
于 2017-02-27T16:26:50.957 回答