当前位置: 代码迷 >> 综合 >> tensorflow编译和Eigen3不兼容报错解决 -- error: the value of ‘j’ is not usable in a constant expression
  详细解决方案

tensorflow编译和Eigen3不兼容报错解决 -- error: the value of ‘j’ is not usable in a constant expression

热度:85   发布时间:2023-12-18 19:34:05.0

编译tensorflow动态库的过程真的是万分曲折,版本搭配不对就会出错,报错信息如下:

error: the value of ‘j’ is not usable in a constant expression

定位到是Eigen3的问题,tensorflow版本是1.13.1,一般来说当需要安装第三方包的时候就在tensorflow/workspace.bzl中找类似下面的内容,然后按照连接下载即可,但是这次我用这个方法还是不行。

  tf_http_archive(
        name = "eigen_archive",
        build_file = clean_dep("//third_party:eigen.BUILD"),
        sha256 = "753fbb58d0a49b6bcbcfb126ebfa2e21fc97f7471529ba835a096008ce588d8a",
        strip_prefix = "eigen-eigen-9f48e814419e",
        urls = [
            "https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/9f48e814419e.tar.gz",
            "https://bitbucket.org/eigen/eigen/get/9f48e814419e.tar.gz",
        ],

最终在github上看到了一句话 https://github.com/tensorflow/tensorflow/issues/29927

I had the same issue
I resolved it by manually downloading the eigen v 3.3.7 (last stable)

按照这里说的下载Eigen3.3.7版本源码,在源码目录中执行下面的命令

mkdir build
cd build
cmake ..
sudo make install

然后把/usr/local/include/eigen3加入Makefile的include路径即可解决编译tensorflow1.13.1中的报错。

另外可以在Eigen/src/Core/util/Macros.h 查看Eigen的版本号。

  相关解决方案