Windows10下CMake构建TensorFlow遇多环节错误求助
Windows10下CMake构建TensorFlow的问题解决指南
问题1:contrib目录缺失与路径创建疑问
- 不要自行创建contrib目录,你使用的教程对应TensorFlow 1.x的特定commit,但如果克隆的是默认main分支(TF2.x+已移除contrib模块),就会出现目录缺失。解决步骤:
- 执行命令切换到教程指定的commit:
git checkout 395cfc42ee3c5842f5383f4049674c012998b133 - 切换完成后,
tensorflow/tensorflow/contrib目录会自动存在,按教程要求在tensorflow/contrib/cmake下创建build目录即可,无需手动构建上层目录结构。
- 执行命令切换到教程指定的commit:
问题2:CMakeLists.txt文件缺失
- 核心原因还是分支不对,切换到指定commit后,
tensorflow/contrib/cmake目录下会自带CMakeLists.txt文件。若切换后仍缺失,执行git fetch --all拉取完整仓库内容,再重新checkout该commit。
问题3:tf_losses目标无源码(losses.cc缺失)
- 该commit版本的
tensorflow/core/ops目录确实没有losses.cc文件,处理方式:- 打开
tensorflow/contrib/cmake/tf_core_ops.cmake,定位到第37行附近的tf_losses相关配置; - 暂时注释掉
tf_losses目标的所有配置代码(包括add_library(tf_losses ...)语句及其后续的依赖关联),但需注意这会丢失losses相关功能,若需完整支持,可从同分支的其他关联目录中找到对应losses源码文件,补充到tensorflow/core/ops目录下。
- 打开
问题4:Eigen、libpng依赖下载404及连锁错误
- 修改下载链接:
- 找到CMake配置文件(通常是
tensorflow/contrib/cmake/CMakeLists.txt或独立的依赖配置文件)中定义Eigen、libpng下载URL的位置; - 将失效的404链接替换为对应依赖的官方归档地址或可用镜像链接;
- 找到CMake配置文件(通常是
- 离线替代方案:如果修改链接仍无法下载,手动下载对应版本的Eigen、libpng压缩包,放置到CMake缓存目录(通常为
build/_deps下的对应子目录),再重新运行CMake配置; - 连锁错误处理:依赖下载完成后,重新执行
MSBuild,大部分连锁错误会自动解决。若仍有剩余错误,检查是否存在其他缺失依赖或注释配置导致的模块依赖问题,根据CMake日志中的错误提示逐一排查修复。
内容的提问来源于stack exchange,提问作者CatHas4Paw
相关产品推荐
相关产品推荐

