0%

解决re2在mavericks下安装失败的问题

re2是Google提供的一个正则库,提供多种语言的bindings。但是在OS X 10.9下面却出现了编译不过的情况。
[Update] 目前Homebrew和官方最新发布的包已经修正该问题。

之前我也向re2项目提交过这个issue,不过一直还没有代码的更新上去,所以只好自己收工修复了。

问题产生的原因主要是因为在Mavericks系统下默认的LLVM系统采用了C++11的标准,而且将libstdc++用libc++进行了替代。因此只要解决了这两个问题就可以解决re2的编译问题。

如果使用Homebrew,可以参考我这个Formula使用:

https://github.com/ipfans/homebrew/blob/master/Library/Formula/re2.rb

自己手工的话,则需要下载re2的包,修改一下两个文件即可.

Makefile:

-CXXFLAGS=-Wall -O3 -g -pthread  # can override
+CXXFLAGS=-Wall -O3 -g -pthread -std=c++11 -DUSE_CXX0X # can override

libre2.symbols.darwin:

-__ZlsRSoRKN3re211StringPieceE
+__ZlsRNSt3__113basic_ostreamIcNS_11char_traitsIcEEEERKN3re211StringPieceE