使用cmake在Windows Server 2016 VS2015 Update 3中从源代码构建Tensorflow 1.9。
编译项目tf_core_kernels时出现问题。
错误消息的片段,例如:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\functional(497): error C2719: “_Func”: 要求 16 对齐的形参将不被对齐 (编译源文件 E:\xxx\tensorflow\tensorflow\core\kernels\pooling_ops_3d.cc)
e:\xxx\tensorflow-build\external\eigen_archive\unsupported\eigen\cxx11\src/Tensor/TensorDeviceThreadPool.h(152): note: 参见对正在编译的函数 模板 实例化“std::function<void (void)>::function<std::_Binder<std::_Unforced,void (__cdecl *)(Eigen::Barrier *,Function,const Self &,Index,const Index &,Op &,T *),Eigen::Barrier *&,void (__cdecl *&)(const Self &,__int64,__int64,Op &,float *),const Self &,Index &,const Index &,Op &,T *&>,void,void>(_Fx)”的引用
with
[
Function=void (__cdecl *)(const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,__int64,__int64,Eigen::internal::AvgPoolMeanReducer<float> &,float *),
Self=Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice>,
Op=Eigen::internal::AvgPoolMeanReducer<float>,
T=float,
_Fx=std::_Binder<std::_Unforced,void (__cdecl *)(Eigen::Barrier *,void (__cdecl *)(const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,__int64,__int64,Eigen::internal::AvgPoolMeanReducer<float> &,float *),const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,Index,const Index &,Eigen::internal::AvgPoolMeanReducer<float> &,float *),Eigen::Barrier *&,void (__cdecl *&)(const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,__int64,__int64,Eigen::internal::AvgPoolMeanReducer<float> &,float *),const Eigen::TensorEvaluator<const Eigen::TensorReductionOp<Eigen::internal::AvgPoolMeanReducer<float>,const Eigen::array<int,1>,const Eigen::TensorReshapingOp<const Eigen::DSizes<Eigen::DenseIndex,3>,const Eigen::TensorVolumePatchOp<-1,-1,-1,const Eigen::TensorMap<Eigen::Tensor<const float,5,1,Eigen::DenseIndex>,16,Eigen::MakePointer>>>,Eigen::MakePointer>,tensorflow::CPUDevice> &,Index &,const Index &,Eigen::internal::AvgPoolMeanReducer<float> &,float *&>
] (编译源文件 E:\xxx\tensorflow\tensorflow\core\kernels\pooling_ops_3d.cc)
感谢您的帮助。