运行碰到编译生成的.so文件报错:
undefined symbol: _ZN10tensorflow12OpDefBuilder4AttrESs
解决办法:
查看你的gcc版本,如果版本大于4,则需要在对应的.sh文件中删除-D_GLIBCXX_USE_CXX11_ABI=0
gcc --version
我的版本为5.4.0,所以需要删除-D_GLIBCXX_USE_CXX11_ABI = 0
删除后:
g++ -std=c++11 \
-shared ./tools/src_mesh_renderer/rasterize_triangles_grad.cc ./tools/src_mesh_renderer/rasterize_triangles_op.cc ./tools/src_mesh_renderer/rasterize_triangles_impl.cc ./tools/src_mesh_renderer/rasterize_triangles_impl.h \
-o ./tools/kernels/rasterize_triangles_kernel.so -fPIC \
-I$TF_INC -L$TF_LIB -ltensorflow_framework -O2
删除之后重新运行.sh文件,然后运行代码就可以正常运行了。