如何为Windows构建Google RE2?

时间:2011-04-30 01:40:43

标签: c++ c windows regex

如何为Windows构建Google RE2?有人试过吗?

5 个答案:

答案 0 :(得分:11)

我在 http://code.google.com/p/re2win 提供了一个分支,您可以将源代码下载为.zip文件并打开.vcproj文件并以“发布”模式进行编译。

答案 1 :(得分:4)

更新:找到了一个可能会或可能不会更好的Windows项目:https://code.google.com/p/re2win/

旧答案(非MSVC):https://groups.google.com/group/re2-dev/browse_thread/thread/0665d7e6693b4adb/54bae4e315a484e3

答案 2 :(得分:1)

我敢打赌,使用Cygwin可以轻松构建。

答案 3 :(得分:0)

自2015年9月起,CMakeLists.txt被添加到RE2存储库。所以现在你可以使用CMake为Visual Studio生成文件,然后像普通的Visual Studio项目一样构建。我写了一个关于如何在Windows的C ++项目中构建和集成RE2的简单step-by-step tutorial。测试VS 13和15。

答案 4 :(得分:0)

您可以通过 Bazel 构建工具 https://bazel.build/

使用 Microsoft Visual Studio 为 Windows 构建 RE2
  1. 通过 git clone https://github.com/google/re2.git 获取最新版本的 RE2
  2. https://github.com/bazelbuild/bazel/releases 下载 Bazel Windows 二进制文件(向下滚动并查找 .exe 文件)
  3. 将 Bazel 二进制文件放在 RE2 的根目录中,或者将包含 Bazel 二进制文件的目录添加到 %PATH%。
  4. 从“开始”菜单运行 Visual Studio 命令提示符,例如“x64 Native Tools 命令提示符”
  5. 在命令提示符下,转到您的 RE2 根文件夹,例如cd c:\gitrepos\re2
  6. 运行bazel.exe build :all
  7. Bazel 将创建子目录 bazel-binbazel-outbazel-re2bazel-testlogs
  8. 您将在 bazel-bin 处找到已编译的 RE2 二进制文件,即库和测试程序(.lib、.pdb、.exe)
  9. 可选地,您可以运行测试程序,例如regexp_benchmark.exe。你会看到这样的输出:
Search_Easy0_CachedDFA/8    10000000           105 ns/op      75.71 MB/s
Search_Easy0_CachedDFA/16   20000000           107 ns/op     148.31 MB/s
Search_Easy0_CachedDFA/32   20000000           121 ns/op     262.31 MB/s
Search_Easy0_CachedDFA/64   20000000           122 ns/op     523.80 MB/s
Search_Easy0_CachedDFA/128  20000000           120 ns/op    1061.91 MB/s
Search_Easy0_CachedDFA/256  20000000           122 ns/op    2081.69 MB/s
Search_Easy0_CachedDFA/512  10000000           185 ns/op    2760.31 MB/s
Search_Easy0_CachedDFA/1K   10000000           270 ns/op    3786.29 MB/s
Search_Easy0_CachedDFA/2K    5000000           409 ns/op    4995.25 MB/s
Search_Easy0_CachedDFA/4K    5000000           573 ns/op    7143.45 MB/s
Search_Easy0_CachedDFA/8K    1000000          1144 ns/op    7159.05 MB/s
Search_Easy0_CachedDFA/16K   1000000          1887 ns/op    8680.17 MB/s
Search_Easy0_CachedDFA/32K    500000          3620 ns/op    9049.65 MB/s
Search_Easy0_CachedDFA/64K    500000          7411 ns/op    8842.68 MB/s

etc...