gpt4 book ai didi

c - 如果我使用linux库用C编译程序,我可以在windows上使用它吗?

转载 作者:行者123 更新时间:2023-11-30 18:44:39 25 4
gpt4 key购买 nike

我只是想知道我是否可以使用我在 Windows 上使用 linux 库用 c 编译的程序,以及是否可以将其转换为可以像 firefox 或 那样启动的 exe其他软件。

我看到可以使用交叉编译器来创建 .exe 文件,但我使用 libcurlcsfml 等库(其中下载供 Linux 使用)。

如果您有任何建议,我很感兴趣。

TLDR:我可以使用 linux 库在 linux 上进行编译,以便在 .exe 中独占 Windows 使用吗?

最佳答案

简单的答案:不。如果您跨不同平台使用库,那是因为它们正在该操作系统上重新编译。只要有针对该特定体系结构的编译器,C 标准就是跨体系结构的。 Windows 使用所谓的 PE(可移植可执行文件)文件格式。它基本上是每个可执行文件开头的一个 header ,它清楚地说明了操作系统应如何以及在内存中的何处执行该文件。另一方面,Unix 使用 ELF。 MacOS 使用 Mach-o。它们都带有如何执行的说明。因此,如果您可以在 Linux 上模拟 PE 格式,那么您可以在 Linux 上运行可执行文件,但在 Windows 上编译。但标准和跨平台库的想法是让您可以在几乎任何受支持的体系结构上运行代码。它不像 Java 那样编译一次就可以在任何地方运行。但您必须记住,JRE 与编译器非常相似。必须针对每个特定体系结构编译 JRE,才能理解和执行 Java 字节码。因此,在任何地方编译代码并不是那么糟糕。

如果我没记错的话,curl 和 csfml 是跨平台库。

关于c - 如果我使用linux库用C编译程序,我可以在windows上使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57325126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com