硬件环境:host是win10 ,VMware下装了一个ubuntu.
我想完成的功能:同一个工程,在win10中VS2019可以编译,ubuntu下也可以编译。
ubuntu 下创建共享文件夹share ip:192.168.9.81
win10 下用VS2019创建工程并放在ubuntu 下。
1.虚拟机设置
2.win10 -ubuntu创建共享文件夹-Samba设置
3.win10-VS创建项目并编译
4.ubuntu-makefile编译
1.虚拟机设置
sudo apt-get install open-vm-tools #安装虚拟机的工具 sudo vmhgfs-fuse .host:/share /home/tang/share -o allow_other -o uid=1000 /etc/fstab: .host:/shared_folder /shared_folder fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,auto_unmount,defaults 0 0
2.win10 -ubuntu创建共享文件夹-Samba设置
apt-get install samba #配置文件位置: /etc/samba/smb.conf [share] comment = my share directory path = /share browseable = yes writable = yes guest ok =yes mkdir /share chmod 777 /share ls -L|grep #前面的输出成为后面的输入 smbd #启动 pkill smbd #杀掉 ps -ef|grep smbd #查看
3.win10-VS创建项目并编译
用VS编译程序:
1.main.cpp代码:
// main.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include#include #include #include #ifdef WIN32 //预处理,会在编译前 #include #pragma comment(lib,"ws2_32.lib") #else #include #include #include #include #define closesocket close //定义宏 #endif int main() { #ifdef WIN32 WSADATA ws; WSAStartup(MAKEWORd(2, 2), &ws); #endif //1.初始化 for (int i = 0; i < 1000; i++) { int sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == -1) { printf("create fail!n"); return -1; } printf("[%d]", sock); sockaddr_in saddr; unsigned short port = 8080; saddr.sin_family = AF_INET; saddr.sin_port = htons(port); //本地字节序-> 网络字节序 saddr.sin_addr.s_addr = htonl(0); if (bind(sock, (sockaddr*)&saddr, sizeof(saddr)) != 0) { printf("bind port %d failed!n", port); } printf("bind port %d sucessed!n", port); listen(sock, 10); //队列的个数 sockaddr_in caddr; socklen_t len = sizeof(caddr); int client = accept(sock, (sockaddr*)&caddr, &len); printf("accpet %dn", client); char* ip = inet_ntoa(caddr.sin_addr); unsigned short cport = ntohs(caddr.sin_port); printf("client ip is %s,port is %dn",ip,cport); closesocket(sock); } getchar(); return 0; // } //2.引用 // 编译 make sockettest // 运行 ./sockettest // 查看进程限制的个数 ulimit -n 一个进程需要超过1024个 // 修改进程限制的个数 ulimit -n 3000 //3.结束 }
4.ubuntu-makefile编译
tcpserver:main.cpp
g++ main.cpp -o tcpserver -std=c++11
命令说明
#$+ 对应依赖项 $@对应目标 -fpic 代码与位置无关 -shared 编成动态库 -std=c++11 #tab键而非空格键



