Winapi 为win32构建工作流

Winapi 为win32构建工作流,winapi,tensorflow,Winapi,Tensorflow,我正在尝试使用cmake为win32构建tensorflow。一切都很好,直到它到达这条线: libprotobuf.lib(descriptor.obj):致命错误LNK1112:模块计算机类型“x64”与目标计算机类型“X86”冲突[A:\src\tensorflow\tensorflow\contrib\cmake\build32\proto\u text.vcxproj] 经过检查,libprotobuf.lib确实构建为x64二进制文件 因此,我应该在哪里更改以使其构建win32库?此

我正在尝试使用cmake为win32构建tensorflow。一切都很好,直到它到达这条线: libprotobuf.lib(descriptor.obj):致命错误LNK1112:模块计算机类型“x64”与目标计算机类型“X86”冲突[A:\src\tensorflow\tensorflow\contrib\cmake\build32\proto\u text.vcxproj]

经过检查,libprotobuf.lib确实构建为x64二进制文件


因此,我应该在哪里更改以使其构建win32库?

此问题已得到解决。显然,在构建过程中,tensorflow下载protobuf,生成的项目文件将目标机器设置为x64。所以这是一个简单的解决办法

现在我遇到了一个新问题:在构建pywrap_tensorflow_内部项目的过程中,发生了以下链接错误: 错误LNK2001:未解析的外部符号“public:virtual\uu cdecl tensorflow::OpDef::~OpDef(void)”

看起来项目正在使用_cdecl调用约定,~OpDef析构函数正在使用_thiscall。我不能改变类析构函数的调用约定。我不知道这怎么会发生


你知道如何解决这个调用约定不匹配的问题吗?

在构建32位tensorflow.dll时,我遇到了类似的链接错误

我通过手动将
~OpDef
的损坏名称从

??1OpDef@tensorflow@@UEAA@XZ


(后者是通过在
op_def.pb.obj
上运行“
dumpbin/symbol
”)找到的)

如果要生成x86二进制文件,必须仅使用x86 libs。或者,如果您想使用x64 libs,您需要构建x64二进制目标。我只是在windows 32位上构建tensorflow.dll。它是用于C++链接的TysFrace.DLL。
??1OpDef@tensorflow@@UAE@XZ