Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 从Linux到Windows的编译_C_Linux_Windows_Sockets_Compilation - Fatal编程技术网

C 从Linux到Windows的编译

C 从Linux到Windows的编译,c,linux,windows,sockets,compilation,C,Linux,Windows,Sockets,Compilation,我想从linux编译我的程序,在Windows上作为exe运行。我知道如何使用mingw64等工具,但真正的问题是Windows没有代码库,而linux有。我如何编译它 #define <sys/socket.h> #define <arpa/inet.h> #define <netinet/in.h> int main(){ //some codes etc. } #定义 #定义 #定义 int main(){ //一些代码等。 } 您可以使用Wind

我想从linux编译我的程序,在Windows上作为exe运行。我知道如何使用mingw64等工具,但真正的问题是Windows没有代码库,而linux有。我如何编译它

#define <sys/socket.h>
#define <arpa/inet.h>
#define <netinet/in.h>
int main(){

//some codes etc.

}
#定义
#定义
#定义
int main(){
//一些代码等。
}

您可以使用Windows socket 2(
Winsock
),它用于Windows中的套接字编程:

#include <winsock2.h>
#include <ws2tcpip.h>
#pragma comment(lib, "Ws2_32.lib")

int main()
{
}
#包括
#包括
#pragma注释(lib,“Ws2_32.lib”)
int main()
{
}
#ifdef_uuWin32__
#包括
#否则
#包括
#恩迪夫

为什么不试试预处理器宏?

可能重复为什么不能在Windows机器上编译程序?如果你被要求让一个程序在Windows上运行,为什么你不能给出要编译和运行的源代码呢?这可能比交叉编译要简单。如果没有动机和背景,你的问题太广泛了。所以,请你的问题,以改善它很多。你在写什么样的程序?您使用的C标准之外的所有函数是什么?为什么需要在Windows上运行它?为什么不将源代码提供给Windows用户呢?尽管存在许多细微的差异,但要小心,从
WSAInit
开始,到许多类似但不同的
setsocktop
。在应用程序代码中使用本地化的
#ifdef
来解决这些问题可能很有诱惑力,但您很快就会发现它们无处不在。我的建议是:用一个更好的API将它们抽象出来。或者,为了不重新发明轮子,请使用现有的跨平台库。(例如,
boost::asio
)@swardfish我认为boost在C程序中不起作用…;-)@我知道,但我想知道有没有可能不用它来编译它,?