【问题标题】:How to compile and build librsync using visual Studio 2010?如何使用 Visual Studio 2010 编译和构建 librsync?
【发布时间】:2013-12-09 18:11:21
【问题描述】:

我们需要一些 rsync 库。我遇到了一个名为 librsync 的东西,并从 Link 下载了它

在这个库的自述文件中提到

PCbuild 目录包含一个项目和预生成的配置 用于 MSVC++ IDE 的文件。这应该足以编译 rdiff.exe 不需要 cygwin。

但是当我在 MSVC++ IDE 中打开它并构建它时,它给了我超过 36 个编译时错误。我想我做错了什么或者错过了一些重要的步骤。

我在 Windows 7 PC 上使用 MS Visual Studio 2010 Premium。

如果这里有人使用 Visual Studio 2010 成功运行了这个项目库,请提供帮助。

【问题讨论】:

  • PCbuild 中的项目文件是针对 VC++ 6...一个相当旧的版本。您必须将构建移植到 VS 2010。
  • 您能否详细说明移植到 VS2010 的含义?当我打开 PCbuild 时,我 rem VS 2010 要求将项目更改为当前版本..我在那里点击是...是一样的吗??
  • 较新的 Microsoft 编译器比旧编译器更合规,检测到的警告和错误也更多。您必须自己修复任何新的警告或错误。

标签: c++ visual-studio-2010 librsync


【解决方案1】:

在用 VS2010 打开.dswVC++ 6 工作区文件并使用自动项目转换后,我必须进行以下最小更改才能使其编译:

  • PCbuild\config.h 的底部添加了#define inline __inline。 VS2010 不支持 C 的 inline 关键字,但有 __inline
  • HAVE_CONFIG_H 添加到rdiff 项目属性、C/C++、预处理器、预处理器定义。否则,在某些情况下,该项目未使用预构建的 PCbuild\config.h。右键单击rdiff 项目,选择属性并在下面的对话框中进行更改:

  • rollsum.c 添加到 rdiff 源文件列表。不知道为什么这会从转换中删除,但需要编译。

仍然有 72 条警告,我没有测试结果,但这应该可以帮助您入门。

【讨论】:

  • 我是 Visual Studio 的新手,所以您能否提供一些链接以进行第二步...我也觉得您错过了提及 popt.h
  • @Abhinav,至于popt.h,上面的改动是得到rdiff编译的最小。我不会为你做所有的工作:) Intellisense“错误”不一定会阻止构建工作。
  • nywz 我已经添加了popt.h :)...我想提一下,因为我觉得它使您的答案完整...我会从这里拿它..thnx :)
  • 解决这些问题后,我得到 4 个链接错误,首先是 error LNK2019: unresolved external symbol _blake2b_final referenced in function _rs_calc_blake2_sum它们都相似..有什么想法吗?我正在使用 VS2010。
猜你喜欢
  • 1970-01-01
  • 2011-04-28
  • 2012-12-25
  • 2011-02-22
  • 1970-01-01
  • 2011-05-21
  • 2011-08-17
  • 2012-05-27
  • 1970-01-01
相关资源
最近更新 更多