有没有人为Windows x64编译PCRE - 如果有,怎么样?

时间:2010-05-30 02:38:39

标签: windows 64-bit 32bit-64bit pcre

我正在尝试使用Vs2008为Windows x64编译PCRE(v8.02)。

“NON-UNIX-USE”文件告诉我使用cmake生成.sln文件。
这样可行。

当我运行构建它成功时,有91个警告。

所有似乎都是尺寸转换警告。

我做错了吗? 我应该期待所有这些警告吗? 有没有其他人成功地在没有警告的情况下为Windows x64构建了PCRE?

3 个答案:

答案 0 :(得分:4)

我联系了PCRE的维护者;显然警告是预料之中的。 他从未在Windows上构建它,更不用说在x64上构建Windows了。


编辑 - 截至2010年6月1日,他更改了最新版本的PCRE,可在svn://vcs.exim.org/pcre/code/trunk处找到,以消除Windows / x64上的警告。

请查看:

svn co svn://vcs.exim.org/pcre/code/trunk pcre

答案 1 :(得分:3)

Windows 64位数据模型的工作方式,将32位代码编译为64位通常可以正常工作。尽管标准中显然没有保证long和int的大小相同,但LLP64保留了这一点。实际上,它们与ILP32中的大小相同。唯一不再安全的是尝试将指针存储在int中。

因此警告可能并不意味着存在真正的问题。

答案 2 :(得分:2)

“显然警告是预期的。他从未在Windows上构建它,更不用说在x64上构建Windows了。

编辑 - 截至2010年6月1日,他更改了最新版本的PCRE,可在svn://vcs.exim.org/pcre/code/trunk上找到,以消除Windows / x64上的警告。“

帮助OS社区做好工作!

作为参考,正如其他人在这里的答案中指出的那样,这些是“警告”,而不是“错误”。这意味着代码没有根本改变。从更改日志中,他添加了一个显式的强制转换,但这纯粹是因为警告不会打印出来。

BLOCKQUOTE> 16。添加了许多(int)强制转换以避免系统中的编译器警告     size_t是64位(#991)。

然而,当编译pcre为64位时,这确实可以保存我们其余的人,不知道这些是否应该修复。很多时候,应用程序将使用警告构建,例如,考虑“已弃用”警告。这意味着代码所依赖的API可能在将来的版本中不可用,但它现在可以使用。