首先在openwrt镜像站下载镜像,这里我选择了清华的openwrt镜像站,Openwrt版本是19.07.3-x86。其他版本可以自行查找。链接如下[openwrt-19.07.3-x86-generic-combined-ext4.img.gz](https://mirror.tuna.tsinghua.edu.cn/openwrt/releases/19.07.3/targets/x86/generic/openwrt-19.07.3-x86-generic-combined-ext4.img.gz) ,镜像很小,只有8M。
下载下来之后,使用7z解压到我们需要的目录,解压之后文件为 openwrt-19.07.3-x86-generic-combined-ext4.img
我们开始制作Vmware系统镜像。这里要用到的软件如下:
StarWind V2V Converter
Vmware Workstation
以及第一步下载的openwrt img镜像
以下操作假设你已经安装好了Vmware和StarWind V2V软件,安装教程网上都有。
打开StarWind V2V软件,按照如下步骤
1. 选择Local file

2. 这里的File name选择你之前解压出来的img文件。选择Next

3. 选择Next

4. 选择VMDK,点击Next

5. 这里我喜欢选择预分配的镜像,而不是增长的镜像,是因为可增长的镜像删除文件后,并不会归还空间。导致镜像越来越大。具体如何增加镜像大小,后面讲,这里原始的官方镜像空间是273M.
点击Next

6. 这里选择你vmdk文件存放的位置。然后点击Convert

7. 转换完成后,点击Finsh





**注意,这里磁盘大小可以随便选,我们并不用这个磁盘文件。**


**注意下面的文件名都是跟你创建虚拟机时虚拟机的名称有关系,我虚拟机名是Openwrt-19.07.3-x86,因此磁盘镜像名就是 Openwrt-19.07.3-x86.vmdk**
1. 创建虚拟机完成后,我们先不启动(当然启动也启动不了)。找到虚拟机存放目录,我这里是(F:\vmware\Openwrt-19.07.3-x86)。删除目录下自动生成的vmdk文件,我这里是Openwrt-19.07.3-x86.vmdk。
2. 将之前使用starConvert转换生成的两个文件文件拷贝到虚拟机目录下
   openwrt-19.07.3-x86-generic-combined-ext4.vmdk
   
   openwrt-19.07.3-x86-generic-combined-ext4-flat.vmdk
   并将名字分别改为
   openwrt-19.07.3-x86.vmdk
   
   openwrt-19.07.3-x86-flat.vmdk
   效果如下图
   
3. 用文本文件打开Openwrt-19.07.3-86.vmdk,修改链接的磁盘文件名为 Openwrt-19.07.3-x86-flat.vmdk
   
1. 虚拟机设置里面,新增一个磁盘,这里我选择的是2G,增加完成后应该是2个磁盘
  
2. 启动虚拟机Openwrt-19.07.3-x86,没有意外的话,应该可以启动了。
Tips: 第一次启动的时候会提示下图,实际上是提示的DVD,点否即可
   
2. 见到如下图,说明启动成功
   
这一步也可以使用luci登录后网页方式修改。
1. 在虚拟机窗口里面单击进入。回车,进行配置
   vi /etc/config/network
   配置成下图
   
   vi /etc/config/firewall
   将WAN口的入口方向改为ACCEPT打开
   
2. reboot 重启。
3. 等待重启完成后,再次单击并回车进入shell,ifconfig查看dhcp获取到的IP地址。我这里是192.168.106.130
   
## 二、 配置openwrt
**Tips1:首次登陆没有密码,直接按回车即可登录。**
**Tips2:下面的操作也可直接用shell命令直接修改。**
1. 设置密码,在System->Administration中随意设置
   
2. 更新软件包列表
   
3. 更新完成后,安装以下软件包
   luci-i18n-base-zh-cn	#中文语言包
   cfdisk	# 磁盘工具
   block-mount # 挂载工具
   4. 新增的磁盘要手动初始化成ext4,
ssh登录到openwrt。
   mkfs.ext4 /dev/sdb     
   5. 进入luci的挂载点,新增挂载点,这里我想挂载到的是/root目录
   
   
然后保存并应用。
   
6. 继续安装以下软件包。
有些包比较大,可以直接去 https://mirror.tuna.tsinghua.edu.cn/openwrt/releases/19.07.3/packages/i386_pentium4/packages/ 下面下载
   # 编译相关
   make
   gdb
   gdbserver
   gcc  # 这个比较大,可以直接到清华镜像网站去下载,然后上传上去安装
   
   openssh-server
   openssh-sftp-server
   rsync
   coreutils-tty
   
   7. 编译并安装zip
这个是因为openwrt未提供,但vs2019又需要,所以自行编译。下载https://nchc.dl.sourceforge.net/project/infozip/Zip%203.x%20%28latest%29/3.0/zip30.tar.gz。并传到/root目录
   cd /root
   tar -xzvf zip30.tar.gz
   cd zip30
   修改unix/Makefile ,将prefix=/usr/local 改为 prefix=/usr
   vi unix/Makefile
      
开始编译
   make -f unix/Makefile generic_gcc
   make -f unix/Makefile install
   /usr/bin/zip #检查是否安装正确
   8. 下面修改dropbear为openssh
参考:https://blog.csdn.net/Kenon_Lin/article/details/80976162修改 /etc/ssh/sshd_config 将#PermitRootLogin without-password 修改为 PermitRootLogin yes
   vi /etc/ssh/sshd_config
   修改dropbear的端口
uci set dropbear.@dropbear[0].Port=2222
uci commit dropbear
/etc/init.d/dropbear restart
reboot #重启生效1. 安装VS2019社区版,直接选择以下项即可
   
2. 创建C++控制台项目,进行测试

3. 工具->选项->跨平台。增加一个ssh连接
   
   
4. 编译工程,成功。可以直接进行在线调试
   
   
在编写C代码时,涉及到头文件路径的设置。可能会提示找不到头文件。
1. 对于系统头文件,如 stdio.h stdlib.h等等,首先要包含目标系统的include目录
   
本地最好也拷贝一份include文件。下载并解压到本地目录,这里解压到:\Users\ucgs\source\repos\
tar -cvf include.tar /usr/include并设置头文件包含目录

2. 动态库也差不多设置方法
最近编辑记录 阿黄 (2021-12-11 14:09:46)
离线