我可以在windows上编译为linux编写的任何c代码吗?

我可以在windows上编译为linux编写的任何c代码吗?,c,operating-system,C,Operating System,看看我现在是否在linux机器上用c编写了一个c程序,如果我想在其他操作系统上编译这个程序,或者说在windows上,我该怎么做 如果我在那个程序中使用了特定于操作系统的东西,比如pthread.h,会怎么样 有什么直接的方法可以做到这一点吗?您不能使用任何不随Windows提供的库,或者不能与Windows一起使用的库。但看起来有针对Windows的pthread实现。您应该检查一下您使用的任何库的Windows等价物。您不能使用任何不随Windows提供的库,或者不能与Windows一起使用

看看我现在是否在linux机器上用c编写了一个c程序,如果我想在其他操作系统上编译这个程序,或者说在windows上,我该怎么做

如果我在那个程序中使用了特定于操作系统的东西,比如pthread.h,会怎么样


有什么直接的方法可以做到这一点吗?

您不能使用任何不随Windows提供的库,或者不能与Windows一起使用的库。但看起来有针对Windows的pthread实现。您应该检查一下您使用的任何库的Windows等价物。

您不能使用任何不随Windows提供的库,或者不能与Windows一起使用的库。但看起来有针对Windows的pthread实现。您应该检查一下您使用的任何库的Windows等价物是什么

看看我现在是否在linux机器上用c编写了一个c程序,如果我想在其他操作系统上编译这个程序,或者说在windows上,我该怎么做

然后,我希望您注意哪些API在Windows上可用,哪些不可用。这不是一个容易解决的问题

由于您使用了
pthreads
,因此Windows上没有API兼容的替代品。本机API是
CreateThread
及其子级。如果必须保持源代码级兼容性,可以创建自己的
#ifdef
规则、包装器,或者使用第三方库,如APR

看看我现在是否在linux机器上用c编写了一个c程序,如果我想在其他操作系统上编译这个程序,或者说在windows上,我该怎么做

然后,我希望您注意哪些API在Windows上可用,哪些不可用。这不是一个容易解决的问题


由于您使用了
pthreads
,因此Windows上没有API兼容的替代品。本机API是
CreateThread
及其子级。如果您必须保持源代码级的兼容性,您可以创建自己的
#ifdef
规则、包装器,或者使用第三方库,如APR.

是的,有一种直接的方法:尝试编译,如果出现故障,尝试找出原因:这是与编译器相关的差异还是与操作系统相关。如果是与编译器相关的,请修改新编译器的源代码(可能是VS,也可以使用mingw)。如果与操作系统相关,则需要移植代码,即修改代码以适应新操作系统


对于
pthread.h
,有一个Pthreads-w32端口将Pthreads连接到windows,您可以查看它。

是的,有一个直接的方法:尝试编译,如果出现故障,尝试找出原因:这是与编译器相关的差异还是与操作系统相关。如果是与编译器相关的,请修改新编译器的源代码(可能是VS,也可以使用mingw)。如果与操作系统相关,则需要移植代码,即修改代码以适应新操作系统


pthread.h
的情况下,有一个Pthreads-w32端口将Pthreads连接到windows,您可以查看它。

如果您的程序依赖于Unix库,您最好使用它。Cygwin是Windows上的一个Unix兼容层,它附带了一系列移植软件,包括bash、gcc、make和Linux上的大多数其他实用程序。还提供了一个pthread端口。

如果您的程序依赖于Unix库,最好使用它。Cygwin是Windows上的一个Unix兼容层,它附带了一系列移植软件,包括bash、gcc、make和Linux上的大多数其他实用程序。pthreads端口也可用。

如果使用特定于操作系统的调用,则需要在其他系统上找到合适的替代方案。在正确回答时,可能需要考虑其他方面,但在大多数情况下,您应该能够在与Windows兼容的IDE/编译器中编译源代码。如果您使用特定于操作系统的调用,则需要在其他系统上找到合适的替代方案。在正确的回答中,可能需要考虑其他方面,但在大多数情况下,您应该能够在与Windows兼容的IDE/编译器中编译源代码。