2016-08-29 20 views
1

Tensorflowに問題があります。 TFを使用するコードを既存のプロジェクト(Makefileを使用する)に統合する必要があります。ここに私がしたことがあります。tensorflowのC++ APIを使用しようとしたときにエラーが発生しました

私はソースからTFを持って、on the TF site.

を説明するように、それをインストールしそれから私はと共有ライブラリを構築しました:私はMakefileのに次の行を追加し、これを実行した後

bazel build //tensorflow:libtensorflow.so

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 

私はそれを作るしようとすると、私はこの素晴らしいエラーが発生します。link

編集:私はいくつかのものを説明するのを忘れました。私はLinux上にあるので、コンパイラは大文字と小文字を区別する必要があります。私は自分のファイルとTFファイルを調べましたが、すべてに#ifndefガードがあるようです。

EDIT:私にアドバイスとして、私はポストに直接誤差を加算しています:

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 

答えて

0

は、私はあなたがすべてのそれらの-Iを追加する必要はないと思う(これはいつかのために行きます) includes

bazelビルドシステムで参照C++の例を見ることができます。

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

フラグ: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tensorflow.bzl#L111

あなたはターゲットをビルドするために発行される実際のコマンドを参照するには-sオプションでbazelビルドを実行することができます。

+0

-Iを含めると、次のようなエラーが発生します。t ensorflow/core/public/session.h:そのようなファイルやディレクトリはありません。 –

関連する問題