Can I use glibc under windows?

8

在Windows系统中是否可以使用glibc(作为msvcrt的替代品)?我知道这是个愚蠢的问题,会有像cygwin这样的答案出现,但我真的想问:是否可能链接到Windows上的glibc并像使用msvcrt一样使用所有库函数?

2个回答

6

glibc曾经在不同的*nix系统上运行,但如今glibc更加专注于Linux。它肯定无法在Windows上运行。


因此,我们应该在每个平台上重新编写我们的开源代码,并用许多预处理器的#ifdefs将其包围起来... 跨平台与两个不同的世界是神话:一方面是Windows,另一方面是Linux、BSD、OS X、iOS等(它们都是跨平台的!)。这是操作系统之间的战争,导致了大量质量低劣的代码... - Brian Cannard
@BrianHaak,你的说法与glibc关系不大。Glibc只是许多库之一(尽管是最流行的之一),实现标准c函数(以及其他一些变化)。只要使用标准c函数,就不需要平台相关的#ifdefs。你在这里的另一个评论中的示例使用了GCC的扩展,值得注意的是α)与库无关,β)除非作者有非常充分的理由,否则这样的代码通常会受到反对。 - Hi-Angel

2

感谢提供这个有趣的参考资料。似乎依靠处理异常有些巧妙,但是嘿,这可能就能够足够地工作...仍然非常棒! - rubenvb
否则,如何在Windows上编译此代码:typedef uint8_t v16 __attribute__ ((vector_size (16)));等等,QFS Reed-Solomon片段在GitHub上 - Brian Cannard
你知道 MinGW-w64 吗?它提供了一个围绕和基于 msvcrt.dll 构建的标准 C99 库。原则上,你可以将使用此 GCC 构建的 32 位 C 代码与 MSVC 进行链接。 - rubenvb
2
在互联网上进行性能测试...是的,那很好。自我测试。不要拿苹果和橙子比较:跨操作系统比较二进制代码执行几乎没有意义:更好的做法是比较MSVC和MinGW-w64 GCC,我敢打赌MinGW-w64 GCC非常快 ;-) - rubenvb
1
让我们在聊天室里继续这个讨论 - rubenvb
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接