tensorflowerror: ‘DSizes’ in namespace ‘Eigen’ does not name a template type

文章讲述了在安装并编译完成TensorFlow后,尝试运行测试程序时遇到的编译失败问题。作者分析可能是库不兼容导致,并提出了解决方案,包括复制缺失的库文件,特别是tensorflow和third_party相关文件,以及eigen3库,然后重新编译以解决这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorFlow安装编译完成后,运行测试程序

#include <stdlib.h>
#include "tensorflow/core/public/session.h"

using namespace tensorflow;
using namespace std;
static Status ReadEntireFile(tensorflow::Env* env, const string& filename,
                             Tensor* output);
int main(int argc, char *argv[])
{
    SessionOptions sessionOptions;
    Session *session = NewSession(sessionOptions);


    return EXIT_SUCCESS;
}

编译测试文件:

g++ tf2.cpp -o tf2 -Iport_def -Ieigen_archive -L/usr/local/include/ -I. -ltensorflow_cc -ltensorflow_framework -std=c++11 -I/usr/local/include/eigen3

/usr/local/include/是TensorFlow库文件路径
在这里插入图片描述

编译失败,报错:
在这里插入图片描述
我估计是部分库不兼容导致的

其中tensorflow和third_party需要重新从编译文件夹总复制过来,缺少的部分文件可以从/home/gosun/.cache/bazel/_bazel_gosun/13de76fce18129464b7e1e914b27c57e/execroot/org_tensorflow/bazel-out/genfiles/tensorflow文件夹总复制,但是不能替换源文件。
将eigen3也重新从安装库中复制整个文件夹下来。

之后再重新编译即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值