https://cloud.tencent.com/developer/article/1146674
写得非常详细非常好
亲身实践,下载TensorFlow的时候真的别用git clone,会下载一些莫名其妙的东西,多达几百M,而且根本编译不过,多达几百个错误,哎。官网的TensorFlow实际只有1百多M,并且直接编译通过,根本没什么幺蛾子发生,会报十来个错误,但是这些错误不影响库的编译。网上的博客坑真多。
官网的TensorFlow是可以选择版本的,在branch里面去找对应的版本然后直接下载。
【Tensorflow】Windows编译tensorflow dll和lib报错fatal error C1060: 编译器的堆空间不足
解决办法:https://blog.csdn.net/heiheiya/article/details/89317265
亲测有效,先提前设置好,然后编译,就不会出现这个问题了。
然后就是最后三个错误。最核心的三个工程
tensorflow windows cmake 编译 error: “grpcpp/grpcpp.h”: No such file or directory,出现这个问题,应该是编译时会下载一些库文件,由于网络原因没有下载下来,因此需要我们手动下载。所以保持稳定的网络十分的重要,免得出现莫名其妙的错误。没有下载,是因为我们cmake TensorFlow的时候没有勾选GRPC_SURPPOET选项。
解决方法:https://blog.csdn.net/alvinlyb/article/details/82215894
grpcpp下载后,把include复制到tensorflow\contrib\cmake\build\grpc\src\grpc下,注意,删掉自带的google文件夹,免得protof冲突。
然后手动仅生成tf_c、tensorflow_static、tensorflw三个项目。生成前先清理
最后这三个错误,按照上面的方法是可以处理的,但问题就在于版本问题,你不知道对不对。所以我最后的办法就是让编译器自己下载grpc,需要重新cmake一遍,要在TensorFlow设置那里勾选GRPC_SURPPOET选项。这样才会自动下载。勾选之后,是编译不通过的。但是我们需要的是grpc这个文件库,所以目的达到了。于是再取消勾选GRPC_SURPPOET选项,再重新编译一遍。
今天准备再重新编译一遍,哎,真的好难啊。
最后编译TensorFlow项目出现链接问题,应该是没找到库,而实际上,通过查找,链接出问题的函数明显就是没有得到项目的编译,据推断,应该是grpc项目,但是我们取消勾选GRPC_SURPPOET选项,所以是没有grpc项目的,那么自然也不会得到编译,哎。所以,我通过查找后,决定注释相关函数,我只能期待它们没什么用。
注释后能全部编译无错误了
虽然编译得库了,但是并不能正常使用,所以肯定还是缺少了一些代码。配置参数很可能是不对的。只能等后面再试试了,目前先告一段落
2019.06.26
我今天依然没有放弃,于是又查资料,竟然看到一个网站https://github.com/fo40225/tensorflow-windows-wheel
这个人把tensorflow 1.7--1.10的windows版本全部编译好了,我的妈耶!!!
例如我需要tensorflow1.10的、cpu支持AVX2指令集的版本,就下载tensorflow-windows-wheel/1.10.0/cpp/libtensorflow-cpu-windows-x86_64-1.10.0-avx2.7z
例如我需要tensorflow1.10的、cpu支持SSE2指令集、且gpu支持CUDA9.2和CUDNN7.2的版本,就下载tensorflow-windows-wheel/1.10.0/cpp/libtensorflow-gpu-windows-x86_64-1.10.0-sse2cuda92cudnn72.7z
然后把其中的include路径包含进去,把lib文件添加到工程中,再在执行exe时把dll文件复制进去就好了,参考下面的【三】和【四】。
我打算直接下载别人编译好的了。关于编译,https://www.cnblogs.com/steven_oyj/p/8259205.html,这篇文章可能还可以
tf 1.8.0 is the latest version that can build cpp lib with cmake.
1.9.0 & 1.10.0 need some fix to make cmake cpp lib build script work.
after 1.11.0, tf deprecated cmake and use bazel to build.
bazel didn't support build the cpp lib on windows until now (1.13.1)
You can try to use cmake to build cpp lib on newer tf.
这是大神的话,所以 tf 1.8.0能很好的编译,再往上就不行了
多看看大神的github果然又好处。https://www.tensorflow.org/install/source_windows
大神介绍了这个网站编译tensorflow
win 10 1709
git 2.14.1 (in PATH)
cmake 3.9.6 (in PATH)
anaconda3 5.1.0 (in PATH)
visual studio 2017
swigwin-3.0.10
open visual studio 2017 x64 native tools command prompt
cd %HOMEPATH%
git clone
https://github.com/tensorflow/tensorflow.git -b v1.6.0
cd tensorflow/tensorflow/contrib/cmake
mkdir build
cd build
cmake .. -G "Visual Studio 15 2017" -A x64 -T host=x64 ^
-DCMAKE_BUILD_TYPE=Release ^
-DSWIG_EXECUTABLE=C:\Users\User\swigwin-3.0.10\swig.exe ^
-Dtensorflow_WIN_CPU_SIMD_OPTIONS="/arch:AVX2"
cmake --build . --target tf_python_build_pip_package --config Release -- /fileLogger
pip install tf_python\dist\tensorflow-1.6.0-cp36-cp36m-win_amd64.whl
我把lib下载下来后,发现还是用不了,在newsession那里就显示内存访问错误。后来发现,工程也要是release才对,因为我们用的lib是release X64,哭晕在厕所。最后我自己编译的、下载别人的,都是设置release X64就都可以用了,完美!