如何在Windows下运行Linux程序

一、搭建 Linux 环境

1.1 安装 VMware Workstation

1.2 下载 CentOS 映像文件

下载 CentOS-7-x86_64-DVD-2009.iso 即可。

1.3 新建虚拟机

二、主机与虚拟机互通

2.1 获取虚拟机的 IP 地址

在终端输入指令ifconfig获取虚拟机的 IP 地址,关注点(ens33):

  1. inet 后的地址:192.xxx.xxx.128
  2. netmask:255.255.255.0

2.2 获取主机 IP 地址

打开 cmd,输入指令ipconfig获取主机 IP 地址,关注点:

  1. VMnet8
  2. IPv4 地址:192.xxx.xxx.1
  3. 子网掩码:255.255.255.0

要保证主机地址和虚拟机地址在同一个网段中。

2.3 互通

主机

打开 cmd,输入指令ping 192.xxx.xxx.128,出现如下界面,则表示成功:

虚拟机

打开终端,输入指令ping 192.xxx.xxx.1出现如下界面,则表示成功:

一定要确保主机和虚拟机能够互相 ping 的通,这是实现 Windows 下运行 Linux 的关键步骤。

三、共享文件夹

一般而言,我们希望能在 Windows 下编写代码,然后通过 Linux 虚拟机编译并运行代码,这时候我们就可以通过共享文件夹实现。

3.1 建立共享文件夹

3.1.1 Windows 设置文件夹共享

  1. 首先,在 Windows 下新建一个共享文件夹(D:\Documents\SharedFolders)。
  2. 「右击」打开共享文件夹 Shared Folders 的属性面板,并通过如下方法设置共享:

3.1.2 Linux 虚拟机添加共享

  1. 打开虚拟机的设置,按照下图设置共享文件,把 Windows 下共享的文件夹添加进去:

3.1.3 便捷入口

可以通过「映射网络驱动器」的方式将「共享文件夹 SharedFolders」置于「我的电脑」中,这让可以便捷的管里共享文件夹中的内容。

  • 右击「此电脑」选择「映射网络驱动器」:

这样,你就可以在「我的电脑」界面看到共享文件夹了:

3.2 虚拟机进入共享文件夹

通过上述步骤添加的共享文件夹在虚拟机下的路径为:/mnt/hgfs/SharedFolders;如果没有,可按照如下方式添加:

  1. 通过ls /mnt指令查看 /mnt 目录下有无 hgfs 目录。

    • 若无,通过sudo mkdir /mnt/hgfs新建 hgfs 目录
  2. 通过sudo vmhgfs-fuse .host:/ /mnt/hgfs指令挂载文件夹 hgfs

然后,通过ls /mnt/hgfs指令,你会发现 hgfs 目录下多了一个 SharedFolders 目录,这个就是与 Windoes 交互的共享文件夹,你可以在 Windows 的 SharedFoolders 下编写一些代码,然后在 Linux 下编译、运行~

需要注意的是,每次重启系统,都需要执行「命令 2」进行挂载。

四、其他

4.1 SecureCRT

安利一个软件 SecureCRT:该软件是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是 Windows 下登录UNIX或Linux服务器主机的软件。

之所以使用这个软件,是因为用这个软件可以很方便的操控Linux虚拟机。举个例子,假如你百度了一条很长很长的指令,现在需要你输入至 Linux 终端,你第一想法肯定是「复制、粘贴」,但是在虚拟机中你是无法将 Windows 下复制的内容粘贴到终端的,这时候就可以提现出 SecureCRT 的便捷了,因为 SecureCRT 本身就是运行在 Windows 下的软件,所以对于复制粘贴操作,手到擒来。

4.1.1 软件安装

按照「使用说明」进行破解即可。

4.1.2 软件使用

使用该软件前确保 CentOS 7 是开启状态(无需登录)。

打开 SecureCRT,按照如下步骤新建连接:

4.1.2 常用设置

4.2 安装 GCC

首先,通过gcc -v查看 GCC 是否安装,如果没有,可通过如下方法安装:

  1. 安装低版本的GCC(4.8.5)
  • yum -y install gcc automake autoconf libtool make
  1. 将 GCC 在线升级到最新版本,依次运行如下指令:

    1. yum -y install centos-release-scl
    2. yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
    3. scl enable devtoolset-9 bash
    4. echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile

最后通过gcc -v查看GCC版本。

声明

参考资料:

# 如何在Windows下运行Linux程序的更多相关文章

  1. 如何在windows下运行Linux命令?(转载)

    在windows上可以运行或使用linux下面的命令吗?可以,小编今天就来分享怎么样让Windows支持Linux命令,做这些安装和设置后,就可以非常方便的在windows系统中使用linux下面的命 ...

  2. 如何在Windows下运行linux shell脚本

    在工作中情况会在碰到linux下进行执行shell的脚本,而就会使用shell的脚本,但经常使用的Windows的系统,而想在Windows电脑中进行直接shell的脚本,而不用再进行学习其它的脚本语 ...

  3. 如何实现在Windows上运行Linux程序,附示例代码

    微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己 ...

  4. gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)

    cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...

  5. Windows下运行Linux命令

    安装Gow软件,Gow-0.7.0.exe,这样就可以在Windows命令行运行Linux命令,比如通过scp把Windows下的文件拷贝到Linux下. 直接运行安装,不会生成任何客户端,直接使用W ...

  6. Golang在windows下交叉编译linux程序

    1.下载相关程序. Golang下载:http://www.golangtc.com/download Git下载:http://git-scm.com/download/ TDM-GCC下载:htt ...

  7. 如何在windows下安装linux双系统

    首先是看这篇博客,讲得很详细,但是有一点小小的区别,这里把整个过程回顾一下. https://www.cnblogs.com/masbay/p/10745170.html 第一步,刻盘,将一个u盘刻录 ...

  8. Windows下运行MapReduce程序出现Could not locate executable null\winutils.exe in the Hadoop binaries.

    运行环境:windows10 64位,虚拟机:Ubuntu Kylin 14.04,Hadoop2.7.1 错误信息: java.io.IOException: Could not locate ex ...

  9. 如何在Windows下安装Linux子系统(Ubuntu,openSUSU,SUSU Linux Server)

    注意:只有win10才能安装,安装的linux没有图形界面. 1.首先在win10设置 --> 更新与安装 --> 针对开发人员 ,选择开发人员模式. 2.win10 Cortana -- ...

随机推荐

  1. 2022-7-20 第七组 pan小堂 String

    字符串 String 字符串部分方法 字符串对象的特点: 1.Java程序中所有双引号引起来的内容,都是String类的对象 2.字符串内容不可变,它们的值在创建后不能被更改(在底层被final修饰, ...

  2. vue项目导航菜单实现

    vue项目导航菜单问题 目标:横向菜单点击跳转,颜色变换,刷新可保持状态 // 模板template中通过循环菜单列表生成,动态类名改变颜色 <li v-for="(item, ind ...

  3. 分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享

    随着微服务架构的流行,客户端发起的一次请求可能需要涉及到多个或 N 个服务,致使我们对服务之间的监控和排查变得更加复杂. 举个例子: 某条业务线的某个接口调用服务端时快时慢,这时就需要排查各个服务的日 ...

  4. Auto.js 特殊定位控件方法 不能在ui线程执行阻塞操作,请使用setTimeout代替

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! Auto.js 特殊定位控件方法 操作环 ...

  5. MySQL Update执行流程解读

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.update跟踪执行配置 使用内部程序堆栈跟踪工具path_viewer,跟踪mysql update 一行数据的执行 ...

  6. Scala中使用 Jackson API 进行JSON序列化和反序列化

    1.  什么是 Json 序列化 和 反序列化 序列化 => 将 Java对象 转换成 json字符串反序列化 => 将 json字符串 转换成 Java对象 2. 依赖包 说明 < ...

  7. JVM 系列(4)一看就懂的对象内存布局

    请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · AndroidFamily 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭锐] ...

  8. Jira使用浅谈篇一

    本篇参考: https://www.jianshu.com/u/9dd427d9ad94 Salesforce 生命周期管理(二)Agile & Scrum 浅谈 我们都知道 salesfor ...

  9. 【java】学习路线6-静态方法、私有化方法、父类子类

    import java.util.Arrays; /* 我们可以自己创建方法(静态) 私有化方法,阻止他人实例化该方法 静态代码块只执行一次,只在加载这个所在类的时候执行 父类 - 子类 子类继承自父 ...

  10. Android配置OpenCV C++开发环境

    网上的OpenCV配置环境大部分都不能正常配置成功,不是编译时报找不到so,就是运行找不到so.本文是我试了不少坑才找到的配置方法.其原理是让AndroidStudio自己根据mk文件自动配置. 1. ...