【Tensorflow实战系列】Tensorflow:动态库的使用(头文件提取,Makefile链接动态库)

发布时间:2026/10/22 22:32:03

【Tensorflow实战系列】Tensorflow:动态库的使用(头文件提取,Makefile链接动态库) 还是要把Tensorflow包含在自己的工程下面所以主要的操作就是链接自己文件夹中的库文件抽取Tensorflow需要的头文件看了很多博客都是一带而过具体如何操作呢新建一个头文件路径mkdir inc cd inc mkdir tf_14将对应头文件复制到对应的tf_14文件夹下cp -r your_path to_tf/bazel-genfiles/* ./inc/tf_14 cp -r your_path_to_tf/tensorflow/cc ./inc/tf_14/tensorflow cp -r your_path_to_tf/tensorflow/core ./inc/tf_14/tensorflow cp -r your_path_to_tf/thirdparty ../inc/tf_14将库文件放到lib文件夹下mkdir lib cp -r your_path_to_tf/bazel-bin/tensorflow/libtensorflow_cc.so.14.1 ./lib/ cp -r your_path_to_tf/bazel-bin/tensorflow/libtensorflow_frame.so.1.14.1 ./lib #建立对应的软链接 ln -s libtensorflow_cc.so.1.14.1 libtensorflow_cc.so.1 ln -s libtensorflow_cc.so.1 libtensorflow_cc.so ln -s libtensorflow_framework.so.1.14.1 libtensorflow_framework.so.1 ln -s libtensorflow_framework.so.1 libtensorflow_framework.so写对应的Makefile,当中还有opencv的库LZ就不删了。。。OURCE_ROOT $(shell pwd) SOURCE example_trainer.cc OBJS test.o TARGET test OBJS_DEBUG test_debug.o TARGET_DEBUG test_debug # compile and lib parameter CC g LIBS -ltensorflow_cc -ltensorflow_framework LIBS -lopencv_highgui -lopencv_imgcodecs -lopencv_calib3d -lopencv_imgproc -lopencv_flann -lopencv_core LIBS -lcairo -lgtk-3 -lgdk_pixbuf-2.0 -lgobject-2.0 LIBS -llibjasper -lIlmImf -lippiw -llibjpeg -llibpng -llibtiff -lippicv -llibwebp -littnotify -lz LIBS -ldc1394 -lraw1394 -lm -ldl #STATIC_LIBS LDFLAGS -L./lib -L./lib/opencvLib LDFLAGS -L../boost/stage/lib -pthread INCLUDE -I ./ -I ./inc -I ./inc/opencv -I ./ INCLUDE -I ./inc/tf_14 -I ./inc/tf_14/third_party CFLAGS -Wall -O -fPIC CXXFLAGS -stdgnu11 all: $(TARGET) $(TARGET_DEBUG) # link $(TARGET):$(OBJS) $(CC) -o $ $^ $(LDFLAGS) $(LIBS) $(STATIC_LIBS) $(CFLAGS) $(INCLUDE) $(CXXFLAGS) $(TARGET_DEBUG):$(OBJS_DEBUG) $(CC) -o $ $^ $(LDFLAGS) $(LIBS) $(STATIC_LIBS) $(CFLAGS) $(INCLUDE) $(CXXFLAGS) -g #compile $(OBJS):$(SOURCE) $(CC) $(CFLAGS) $(INCLUDE) $(CXXFLAGS) -o $ -c $^ $(OBJS_DEBUG):$(SOURCE) $(CC) $(CFLAGS) $(INCLUDE) $(CXXFLAGS) -g -o $ -c $^ # clean clean: rm -fr *.o rm -fr $(TARGET) $(TARGET_DEBUG)编译的时候会报如下的错误;g -Wall -O -fPIC -I ./ -I ./inc -I ./inc/opencv -I ./ -I ./inc/tf_14 -I ./inc/tf_14/third_party -stdgnu11 -o test.o -c example_trainer.cc In file included from ./inc/tf_14/tensorflow/core/framework/tensor.h:21:0, from ./inc/tf_14/tensorflow/cc/framework/ops.h:21, from ./inc/tf_14/tensorflow/cc/ops/array_ops.h:8, from ./inc/tf_14/tensorflow/cc/ops/standard_ops.h:19, from example_trainer.cc:21: ./inc/tf_14/third_party/eigen3/unsupported/Eigen/CXX11/Tensor:1:42: fatal error: unsupported/Eigen/CXX11/Tensor: No such file or directory #include unsupported/Eigen/CXX11/Tensor ^ compilation terminated. make: *** [test.o] Error 1缺了Eigen补上就行cp -r your_path_to_eigen/eigen ./inc/tf_14/eigenMakefile添加eigen头文件INCLUDE -I ./inc/tf_14/eigenmake然后继续报错g -Wall -O -fPIC -I ./ -I ./inc -I ./inc/opencv -I ./ -I ./inc/tf_14 -I ./inc/tf_14/third_party -I ./inc/tf_14/eigen -stdgnu11 -o test.o -c example_trainer.cc In file included from ./inc/tf_14/tensorflow/core/framework/tensor.h:22:0, from ./inc/tf_14/tensorflow/cc/framework/ops.h:21, from ./inc/tf_14/tensorflow/cc/ops/array_ops.h:8, from ./inc/tf_14/tensorflow/cc/ops/standard_ops.h:19, from example_trainer.cc:21: ./inc/tf_14/tensorflow/core/framework/allocator.h:24:38: fatal error: absl/strings/string_view.h: No such file or directory #include absl/strings/string_view.h ^ compilation terminated. make: *** [test.o] Error 1缺了absl再加上cp -r your_path_to_absl/absl ./inc/tf_14/absl同时修改MakefileINCLUDE -I ./inc/tf_14/abslmake编译通过运行一下最后可以得到对应输出总算琢磨出来了。。。
延伸阅读

更多相关文章

2026/10/22 22:32:03

PJ85718DM与PIC18F85J10协同的HVAC远程温度采集方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 22:32:03

【Pytorch】Pytorch: Automatic Differentitation (二)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 23:57:26

SQL注入原理与防御实战:从数据库安全到参数化查询的完整指南

1. SQL注入到底是什么:从一道“不该通过”的登录说起聊SQL注入之前,先讲一个我早年做项目时遇到的真实案例。某公司内部系统上线没多久,运维反馈后台登录接口响应偶尔很慢,偶尔又很快,而且数据库负载波动明显。一开始怀…

2026/10/22 23:57:26

知识工作插件化架构:从设计原则到落地实践

1. 从"知识工作插件"这个命名说起:它到底想解决什么问题第一次看到"knowledge-work-plugins"这个命名,我的直觉是:这不是一个具体的工具,而是一类架构思路的统称。它指向的是把"知识工作"这件事拆解…

2026/10/22 23:57:26

jinfo命令详解:JVM运行中参数查看与动态修改实战

提到 JVM 排查工具,大家随口就是 jstat、jstack、jmap,jinfo 反而常常被忽略。它属于 JDK 自带的诊断命令,核心能力正好是标题里这九个字:实时查看和修改 JVM 配置参数,也就是你可以不重启、不停机,对一个正…

2026/10/22 23:57:26

DFMEA在新能源检测设备中的应用:温度风险分析与失效链拆解

简介:面向新能源、检测技术、材料化学、元器件及汽车电子领域的DFMEA设计潜在失效模式及后果分析讲解文档,适合需开展可靠性设计与风险评估的工程师、研发人员及质量管理人员。内容系统覆盖DFMEA定义系统、失效模式罗列、严重度(S&#xff09…

2026/10/22 23:57:26

从极简命名到工程落地:拆解小模块设计哲学与实操要点

1. 从“rea”这个标题说起:一个极简词背后的项目拆解思路 “rea”这三个字母,第一次看到的时候,我脑子里蹦出来的第一反应是——这大概率是个缩写,而且是一个被压缩到极致的缩写。在技术圈里混久了你会发现,越是短的项…

2026/10/22 23:52:25

漏洞挖掘实战:从学习路径到变现逻辑全拆解

经常有人问我,搞安全技术是不是就得偷偷摸摸?不上班靠挖漏洞一年赚二十万,听起来像爽文,但真有人靠这个吃饭。今天我不聊虚的,就把漏洞挖掘这条路从学习路径、实战流程到变现逻辑完整拆一遍,告诉你这门手艺…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑