wsl ubuntu 配置c++环境
1.sudo apt-get install  build-essential 更新 配置源
2.sudo apt install gcc-8
3.sudo apt install g++-8
cd /usr/bin
ln -s gcc-4.8 gcc
ln -s g++-4.8 g++
ln -s gcc-4.8 cc
ln -s g++-4.8 c++
可能需要root权限。可以sudo su root获取root权限。
一次安装基础包:
apt install python automake libtool flex texinfo libcppunit-dev make libncurses5-dev zlib1g-dev binutils-dev libssl-dev -y
为什么要在windows下编译Linux项目?
我们是做后台开发的,虽然我们的svr都泡在tlinux上,但是大部分同学写代码/看代码还都是在windows下,使用类似于Clion、visual studio、source insight等编辑器(可以方便的跳转),只有真正需要编译的时候才去编译机上进行编译。这样就有一个问题:当带有有编译错误时,需要在windows上改一下再通过rz或者ftp工具传过去再进行编译,效率不高。如果可以在windows上编译,就只用在编译完成进行一次svn提交即可,需要运行的时候再去编译机编译运行。而且编译完成后对于那些存在于tar包里面代码也可以做到跳转,写代码看代码也比较方便。
当然还有一个原因是组内有使用mac的同学做了在mac下的编译,心想windows不能没人管啊,于是就研究了下在windows下的编译。
什么是WSL?
Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。发展到现在不止支持Ubuntu,还有OpenSuse、SUSE Linux Enterprise Svr、Debian、Kali等操作系统。
如何开启WSL?
本文以Ubuntu为例,展示如何在WIN10下开启WSL。本文所说的都是在开发网下面进行的操作,所以需要申请临时访问外网权限。
1, 在服务里面将WIN10的自动更新服务打开,并把win10更新到最新版本。可以在https://www.microsoft.com/zh-cn/software-download/windows10下载最新的升级器进行快速升级。
2,打开开发者模式:开始菜单 =>windows设置=>更新和安全=>针对开发人员=>开发人员模式
3,安装WSL组件:控制面板=>程序和功能=>启用或关闭windows功能=>在“适用于Linux的Windows子系统”前面打钩,确定后重启系统
4,去应用商店下载Ubuntu:开始菜单 =>打开windows store=>搜索linux=>在windows运行linux?是的=>获取这些应用=>选择ubuntu进行下载,下载完成后自动安装。注意:由于我们公司网络策略,这块如果有相关问题要等好久,我就是因为不明网络原因重装了一次win10才解决,后面下载也经常遇到各种问题,比如速度慢、弹出错误等,不行就重启,杀后台进程,多试几次应该都可以的。
这些都完成后,你的开始菜单里面应该有了ubuntu的图标,点击进去进行安装即可,第一次会要求输入用户名和密码。
后续开启ubuntu子系统可以在cmd里面输入bash或者ubuntu即可,也可以选择开始菜单里面的ubuntu图标。开启后就是个标准的linux程序了,可以看到系统的 C D E等盘都被挂载到了/mnt下面。
如何编译代码?
apt update
1,设置源和代理,修改系统配置
- WSL默认带的包很少,编译需要的东西很多都要自己安装。ubuntu下面安装使用apt工具,需要设置相关源,这个网上找下相关教程即可,不再赘述。
 
2,下载安装相关的组件:
不同的项目需要的编译工具,以我们项目为例:
- 我们需要gcc4.8,所以:
 
sudp apt install gcc-4.8 sudp apt install g++-4.8
再做一下软链接:
cd /usr/bin
ln -s gcc-4.8 gcc
ln -s g++-4.8 g++
ln -s gcc-4.8 cc
ln -s g++-4.8 c++
可能需要root权限。可以sudo su root获取root权限。
一次安装基础包:
apt install python automake libtool flex texinfo libcppunit-dev make libncurses5-dev zlib1g-dev binutils-dev libssl-dev -y
- cmake需要升级到3.9以上,去https://cmake.org/download/下载3.9版本,解压后 ./bootstrap && make && make install
 - uuid项目需要automake1.13版本,protobuf需要1.14版本的automake,apt上install的automake是1.15版本的,所以还需要去http://ftp.gnu.org/gnu/automake/下载对应的版本,./configure && make && make install
 - mysync需要bison使用2.7版本,3.0以上的版本mysql-5-1-16会报错,去http://ftp.gnu.org/gnu/bison/下载2.7版本安装包,然后./configure,make, make install即可。有可能会报找不到bison的错误,使用命令:find . -type f | xargs touch -t `date +%Y%m%d%H%M`
 - 你可以像在linux下面编译你的代码了。哦不,本来就是在linux下面,哈哈。
 
其他一些tips
- clion最新的编译器才支持WSL,需要去官网下载最新的。
 - clion的WSL是通过ssh连接到ubuntu的,同理你也可以自己用ssh工具(比如putty、secureCRT等)连接到ubuntu,这里给一个ubuntu下面开启sshd的方法,参考:https://hbaaron.github.io/blog_2017/%E5%9C%A8wsl%E4%B8%8B%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8sshd%E5%85%A8%E6%94%BB%E7%95%A5/
 - 代码可以通过svn checkout到D E盘等,编译的时候如果需要用到 / 目录之类的,可以通过软链接实现
 
最后,希望大家在windows上码的愉快~~~
wsl ubuntu 配置c++环境的更多相关文章
- ubuntu 配置JDK环境变量
		
ubuntu 配置JDK环境变量 (2011-11-25 16:45:59) 转载▼ 标签: ubuntu jdk 环境变量 杂谈 分类: Linux_Ubuntu_CentOs 过程如下: 1. 先 ...
 - Ubuntu 配置Tomcat环境(转载)
		
Ubuntu 配置Tomcat环境 1.下载Tomcat http://tomcat.apache.org/,下载Tomcat 8(由于目前最新eclipse不支持tomcat 9) 将下载的ap ...
 - ubuntu配置机器学习环境(一) ubuntu安装
		
第一部分:Ubuntu14.04安装 Step :安装Ubuntu Step 1.1:准备安装U盘 首先到官网下载Ubuntu的镜像,我使用的是Ubuntu 14.04.3的ISO. 然后使用Ultr ...
 - Linux:Ubuntu配置jdk环境变量
		
1.下载jdk 推荐官网:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 下载tar.gz包即可. ...
 - Ubuntu配置java环境变量
		
参考文章: http://www.cnblogs.com/BigIdiot/archive/2012/03/26/2417547.html 方法1:修改/etc/profile 文件所有用户的 she ...
 - ubuntu配置服务器环境
		
今天环境不知道怎么就不能用了.自己新配了一个: 添加源: vi /etc/apt/sources.list 将下面这些源添加进去: deb http://debian.ustc.edu.cn/ubun ...
 - Ubuntu 配置Tomcat环境
		
1.下载Tomcat http://tomcat.apache.org/,下载Tomcat 8(由于目前最新eclipse不支持tomcat 9) 将下载的apache-tomcat-8.0.35.t ...
 - ubuntu配置机器学习环境(二) cuda 和cudnn 安装
		
Nvidia CUDA Toolkit的安装(cuda) PS:特别推荐*.deb的方法,目前已提供离线版的deb文件,该方法比较简单,不需要切换到tty模式,因此不再提供原来的*.run安装方法,这 ...
 - ubuntu配置机器学习环境(三) opencv 安装
		
这里使用脚本安装 一些教程里使用cmake 安装,很容易出错的 使用github上的安装脚本,自动化安装 参考链接 Ubuntu $ cd Ubuntu/2.4 $ chmod +x * # 如果要安 ...
 
随机推荐
- RTP实时传输协议
			
RTP协议是包括一对协议:RTP和RTCP. RTP传输数据,RTCP传输控制信息. 一般基于UDP,RTP使用偶数端口,RTCP使用下一个奇数端口. 层次关系: APP -> RTP -> ...
 - Druid密码加密
			
pom里引用: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring ...
 - 分布式-JOB(XXL-Job)
			
为什么使用xxl-job,不使用qz: 缺少补偿机制 不支持集群 不支持路由策略 统计任务执行 平台管理 监控,报警邮箱 幂等性:一次请求和多次请求得到相同的结果,不会因为多次的请求,导致最后的数据不 ...
 - Kong配置参考
			
kong配置的官网说明:https://docs.konghq.com/1.0.x/configuration/ 1. 配置加载 如果您通过其中一个官方软件包安装了Kong,Kong会附带默认配置文件 ...
 - linux下批量查找UTF-8的BOM文件,并去除BOM
			
首先查找看看有哪些文件包含BOM find . -type f -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME} {nextfile} ...
 - nice team小组出山啦!(第二次会议)
			
为什么niceteam小组一个月没有更新博客?因为我们正在埋头苦干.是的过去的一个月我们的小组成员正沉浸在知识的海洋中,今天是我们出山的好日子,特地记录一下我们的工作进度. 在项目经理的安排下,我们小 ...
 - node-js:文摘
			
ES6相关 1.module.exports与exports,export与export default之间的关系和区别 nodejs基础 1.NodeJs安装与全局配置(不建议修改包的全局安装路径, ...
 - three.js的组合与合并,raycaster射线无法获取group
			
1.组合 创建一个组非常简单,在组中添加子元素的效果是,你可以对组进行移动.缩放和变形,而所有的子对象都会受到影响.使用组的时候,你依然可以引用.修改每一个单独的几何体.但是,使用raycaster射 ...
 - jquery datatable测试部分代码(仅自用)
			
创建一个四列的datatable表,第四列为表格里的按钮设置,respond为JSON对象数组. $('#example').DataTable({ //每页显示十条数据 ...
 - golang初识3 - func
			
1. 功能块(function block) 格式: func function_name( [parameter list] ) [return_types] { //body } 与delphi的 ...