栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

win10-VMware(ubuntu)-VS2019-C++-跨平台编译(1)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

win10-VMware(ubuntu)-VS2019-C++-跨平台编译(1)

硬件环境: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键而非空格键

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号