makefile — ошибка при попытке использовать API C ++ tenorflow

У меня есть небольшая проблема с Tensorflow. Я должен интегрировать мой код, который использует TF, в уже существующий проект (который использует Makefile). Итак, вот что я сделал.

Я получил TF из источника и установил его, как описано на сайте TF.

Затем я построил общую библиотеку с:

bazel build //tensorflow:libtensorflow.so

После этого я добавляю следующие строки в Makefile:

CFLAGS += -I/home/alpy/tensorflow/bazel-genfiles
CFLAGS += -I/home/alpy/tensorflow/
CFLAGS += -I/home/alpy/tensorflow/third_party/eigen3

LDFLAGS += -L/home/alpy/tensorflow/bazel-bin/tensorflow
LDFLAGS += -ltensorflow

Когда я пытаюсь сделать это, я получаю эту замечательную ошибку: ссылка на сайт

РЕДАКТИРОВАТЬ: Я забыл объяснить несколько вещей. Я на Linux, поэтому компилятор должен быть чувствительным к регистру. Я проверил свои файлы и файлы TF, и все они, кажется, имеют охрану #ifndef.

РЕДАКТИРОВАТЬ: Как мне посоветовали, я добавляю ошибку прямо в пост:

In file included from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
[...]

from /home/alpy/tensorflow/tensorflow/core/public/session.h:23,
from ../src/conversion.h:11,
from ../src/detect_fast_C.cpp:43:
/home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:42: error: #include nested too deeply
In file included from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:0,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
from /home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1,
[...]
from /home/alpy/tensorflow/tensorflow/core/framework/types.h:23,
from /home/alpy/tensorflow/tensorflow/core/framework/type_traits.h:22,
from /home/alpy/tensorflow/tensorflow/core/framework/allocator.h:25,
from /home/alpy/tensorflow/tensorflow/core/framework/tensor.h:21,
from /home/alpy/tensorflow/tensorflow/core/public/session.h:23,
from ../src/conversion.h:11,
from ../src/detect_fast_C.cpp:43:
/home/alpy/tensorflow/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:42: error: #include nested too deeply

(Это продолжается некоторое время)

1

Решение

Я не думаю, что вы должны добавить все эти

Вы можете посмотреть справочный пример C ++ в системе сборки Bazel.

cc_binary.
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/cc/BUILD#L264

Флаги:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tensorflow.bzl#L111

Вы можете запустить bazel build с помощью -s возможность увидеть фактические команды, выпущенные для создания цели.

0

Другие решения

Других решений пока нет …