У меня есть небольшая проблема с 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
(Это продолжается некоторое время)
Я не думаю, что вы должны добавить все эти
Вы можете посмотреть справочный пример 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
возможность увидеть фактические команды, выпущенные для создания цели.
Других решений пока нет …