Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fatal error: google/protobuf/port_def.inc: No such file or directory #include <google/protobuf/port_def.inc>

I have windows. And I want to create an C++ op using library tensorflow. From this site https://www.tensorflow.org/guide/extend/op#compile_the_op_using_your_system_compiler_tensorflow_binary_installation I understood that I should do folowing:

TF_CFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_compile_flags()))') )
TF_LFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_link_flags()))') )
g++ -std=c++11 -shared zero_out.cc -o zero_out.so -fPIC ${TF_CFLAGS[@]} ${TF_LFLAGS[@]} -O2

I did that. But I got next problem:

In file included from C:\Python\Python37\lib\site-packages\tensorflow\include/tensorflow/core/framework/op_def_builder.h:24,
                 from C:\Python\Python37\lib\site-packages\tensorflow\include/tensorflow/core/framework/op.h:23,
                 from zero_out.cc:4:
C:\Python\Python37\lib\site-packages\tensorflow\include/tensorflow/core/framework/op_def.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory
 #include google/protobuf/port_def.inc
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

I don't understand how can I solve this problem. I would be really grateful if you can help me to solve this problem

like image 233
NN_05 Avatar asked Jul 03 '19 14:07

NN_05


1 Answers

I think you might have solved the problem by now, but for the reference of others posting one possible solution. Find the tensorflow include directory path and include it while compiling your code. You can manually check that the header file (missing in your case) is present in the include path.

tf_include_dir=($(python -c "import tensorflow as tf; print(tf.sysconfig.get_include())"))

and modify your compile command to include the tf_include_dir i.e.

g++ -std=c++11 -Itf_include_dir -shared zero_out.cc -o zero_out.so -fPIC ${TF_CFLAGS[@]} ${TF_LFLAGS[@]} -O2
like image 152
chandrakant_k Avatar answered Oct 22 '22 09:10

chandrakant_k