尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【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编译通过运行一下最后可以得到对应输出总算琢磨出来了。。。
RELATED

相关推荐

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

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:35:54
【CUDA】CUDA: (八) 使用 CUDA C/C++ 加速计算的基础 (NVIDIA 课程 Part one)

【CUDA】CUDA: (八) 使用 CUDA C/C++ 加速计算的基础 (NVIDIA 课程 Part one)

/* 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:35:54
【Pytorch】Pytorch: Automatic Differentitation (二)

【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 22:35:54
MORE NEWS

更多资讯

📰

基于SpringBoot+Vue的养老公寓管理系统:企业级架构与健康预警闭环解析

做了几年医疗健康类信息化项目,养老公寓管理系统这套东西一直是我觉得“看着简单,做起来全是细节”的典型。很多刚入行的朋友一听到“养老公寓管理系统”,第一反应就是“不就是个带老人信息管理的CRUD吗”。真拿下一个企业级项目的时候&#…

📰

反向传播与自动微分:PyTorch中梯度计算的原理与实践

1. 从链式法则到反向传播:为什么这一步必须学扎实 做深度学习也好几年了,带过不少新人。每次讲到 Back Propagation(反向传播)这一节,我都要专门停下来,因为这是一个分水岭——懂不懂反向传播,直…

📰

LangGraph实战:用图编排搞定复杂智能体流程

做应用层的朋友应该都有同感:模型本身往往不是最难的,真正难的是把模型塞进一条会转弯、会分叉、还会重复执行的业务流水线里。我帮某电商业务搭智能客服时,需求其实很朴素——用户进来先判断意图,查订单的走查询工具,…

📰

学术速递信息筛选与论文解读实战:从信息源到日更体系

1. 一份学术速递背后的信息筛选逻辑每天早上八点半,我习惯性地打开几个固定的信息源,扫一遍过去24小时内冒出来的新论文。这个动作从读研那会儿就开始了,到现在做了快十年,已经变成了一种肌肉记忆。2月23日这一期的学术速递&#…

📰

自动驾驶基座模型:从多模态感知到决策能力升级

前阵子海外GPU技术峰会刚结束,朋友圈几乎被一个词刷了屏:基座模型。尤其是一家长期专注L4级自动驾驶的公司,趁峰会窗口放了基座模型的新进展,并且把“自动驾驶”和“AI能力体系”放进同一个叙事框架。这组合乍看起来有点反差——一…

📰

Spring AI Alibaba停更后,Java AI应用开发的工程化选型与落地实践

1. 一个停更消息引发的技术选型焦虑前几天在技术群里看到有人转了一张截图,说 Spring AI Alibaba 这个项目停更了,紧接着群里就炸了锅。有人感叹“Java 在 AI 这条路上果然走不通”,有人开始盘算着要不要转 Python,还有人直接甩出…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬