关于编译l异常的有关问题,是链接有关问题,求解答
关于编译l错误的问题,是链接问题,求解答
我的代码:
#include "stdafx.h"
#include "Winsock2.h"
#include "stdio.h"
void main()
{
//初始化socket编程环境
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return;
}
//建立客户端socket
SOCKET sockClient = socket( AF_INET ,SOCK_STREAM , 0 ) ;
//服务器地址
SOCKADDR_IN addrSrv ;
addrSrv.sin_addr.S_un.S_addr = inet_addr("172.16.2.247") ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons( 2000 ) ;
//连接服务器
connect( sockClient , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR)) ;
//等待接收服务器的响应
char recvBuf[100];
recv( sockClient , recvBuf , 100 , 0 ) ;
printf( "%s " , recvBuf ) ;
char sendBuf[100] ;
sprintf( sendBuf , "%s" , "this is zhang san" ) ;
send( sockClient , sendBuf , strlen(sendBuf)+1 , 0 ) ;
closesocket( sockClient ) ;
WSACleanup() ;
}
编译后出现链接问题:
error LNK2001: unresolved external symbol _strlen
error LNK2001: unresolved external symbol _sprintf
error LNK2001: unresolved external symbol _printf
error LNK2001: unresolved external symbol __chkesp
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
Debug/text.exe : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.
------解决方案--------------------
需要修改编译器的设置:
属性页:system->子系统->改为控制台
我的代码:
#include "stdafx.h"
#include "Winsock2.h"
#include "stdio.h"
void main()
{
//初始化socket编程环境
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 )
{
WSACleanup( );
return;
}
//建立客户端socket
SOCKET sockClient = socket( AF_INET ,SOCK_STREAM , 0 ) ;
//服务器地址
SOCKADDR_IN addrSrv ;
addrSrv.sin_addr.S_un.S_addr = inet_addr("172.16.2.247") ;
addrSrv.sin_family = AF_INET ;
addrSrv.sin_port = htons( 2000 ) ;
//连接服务器
connect( sockClient , (SOCKADDR*)&addrSrv , sizeof(SOCKADDR)) ;
//等待接收服务器的响应
char recvBuf[100];
recv( sockClient , recvBuf , 100 , 0 ) ;
printf( "%s " , recvBuf ) ;
char sendBuf[100] ;
sprintf( sendBuf , "%s" , "this is zhang san" ) ;
send( sockClient , sendBuf , strlen(sendBuf)+1 , 0 ) ;
closesocket( sockClient ) ;
WSACleanup() ;
}
编译后出现链接问题:
error LNK2001: unresolved external symbol _strlen
error LNK2001: unresolved external symbol _sprintf
error LNK2001: unresolved external symbol _printf
error LNK2001: unresolved external symbol __chkesp
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
Debug/text.exe : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.
------解决方案--------------------
需要修改编译器的设置:
属性页:system->子系统->改为控制台