问题使用cmake安装protobuf

时间:2018-06-14 12:41:05

标签: python c++ windows cmake protocol-buffers

我一直试图安装imposm.parser,这让我发疯了。经过几天在线,我设法在mac上安装它。
但是,我一直在尝试在Windows上安装它,但在此之前,需要安装谷歌protobuf。 这根本不容易。我设法取得了一些进展,但是现在当我没有任何帮助时,我陷入了困境。
我跟随的说明如下:
CMake Configuration
我一直在尝试通过cmd,cygwin和VS2015的开发人员命令提示符,没有希望。 输出如下:

开发人员命令提示符 - VS2015

  

[53%]建立了目标精简版   [54%]链接CXX可执行tests.exe   LINK:命令" C:\ PROGRA~2 \ MICROS~1.0 \ VC \ bin \ link.exe / nologo @CMakeFiles \ tests.dir \ objects1.rsp /out:tests.exe /implib:tests.lib / pdb:C:\ work \ protobuf \ cmake \ build \ release \ tests.pdb /version:0.0 / machine:X86 / INCREMENTAL:NO / subsystem:console libprotoc.lib libprotobuf.lib gmock_main.lib
  
  C:\ Users \ Philip \ Anaconda2 \ Library \ lib \ z.lib gmock.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib / MANIFEST /MANIFESTFILE:tests.exe.manifest"使用以下输出失败(退出代码1120):   libprotobuf.lib(gzip_stream.cc.obj):错误LNK2019:函数" public中引用的未解析的外部符号_deflate:bool __thiscall google :: protobuf :: io :: GzipOutputStream :: Close(void)" (?关闭@ GzipOutputStream @ IO @ protobuf的@谷歌@@ QAE_NXZ)   
  
  ......   
  
  ......   
  
  C:\ Users \ Philip \ Anaconda2 \ Library \ lib \ z.lib:警告LNK4272:库机器类型' x64'与目标机器类型的冲突' X86'   tests.exe:致命错误LNK1120:6个未解析的外部   NMAKE:致命错误U1077:' C:\ Users \ Philip \ Anaconda2 \ Lib \ site-packages \ cmake \ data \ bin \ cmake.exe' :返回代码' 0xffffffff'   停止。
  NMAKE:致命错误U1077:'" C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ BIN \ nmake.exe"' :返回代码' 0x2'   停止。
  NMAKE:致命错误U1077:'" C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ BIN \ nmake.exe"' :返回代码' 0x2'   停止。

我的问题是:如何解决这个问题?并且,是否有更简单的方法在Windows上安装protobufimposm.parser

1 个答案:

答案 0 :(得分:1)

_deflate听起来像某个压缩库中的函数。实际上它用在一个名为GzipOutputStream的类中。您是否正在使用protobuf的所有依赖项的链接标志?

还存在机器类型不匹配。也许您正在尝试将32位库链接到64位可执行文件。