一直播如何电脑上使用在 Visual Studio 上用 C/C++ 写 Linux 程序

使用VisualStudio编写第一个C程序
使用VisualStudio编写第一个C程序
黑夜的笑话
我们在微软官网上注册一个微软账号并下载visualstudio,安装后就可以使用visualstudio编写c程序了,今天,来教大家怎么使用vigisualstudio编写第一个C程序。①双击打开visualstudio,出现如下界面②点击左上角file→new→project,建立一个新工程③出现如下界面,选择左侧templates→visualc++→win32,再选择右侧win32consoleapp,在下方的name处填写好工程名,然后点击ok,再在出现的弹框中选择next④在如下界面中选择“Emptyproject”,点击finish,新工程就算建好啦!⑤右键右侧的“sourcefile”,选择add→NewItem→c++file(.cpp),可在下方的“Name”处定义源文件名,然后点击“add”:⑥会发现在右侧“sourcefile”下多了一个源文件,该源文件就是我们在上一步添加的源文件。然后我们就可以在这个源文件中写入代码了:最后一步,按下Ctrl+F5,在弹出框中选择ok,即可运行程序了,此时会在控制台输出“helloworld”。大功告成,我们第一个c程序写好了,虽然是一个简单的程序,但是迈出了第一步,所谓万事开头难嘛,并且其他复杂的程序也是由简单的程序扩展来的,所以继续努力吧~~
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
黑夜的笑话
百家号 最近更新:
简介: 分享最新科技、IT、互联网等科技信息
作者最新文章拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3b872e7c617b5092-ua98).
重新安装浏览器,或使用别的浏览器Visual Studio 2017:Linux C++ 开发教程(WSL篇) - CSDN博客
Visual Studio 2017:Linux C++ 开发教程(WSL篇)
Visual Studio 2017:Linux C++ 开发
Macrc Goodner,Visual Studio C++ Team 的 PM,在 2016 年 11 月发布在 Youtube 的视频
中为我们介绍了 Visual Studio 2017 的 Linux 编程特性。该视频主打十分钟上手,并在片尾介绍了该特性支持的几种工作负载:
Linux Servers and desktops
Azure hosted or local VMs
Docker containers
Windows Linux Subsystem
Linux devices
其中对于我来说「 Windows 的 Linux 子系统(windows subsystem for linux,WSL)」最具有吸引力。根据我对该视频的简单理解,Visual Studio 2017 + WSL 的组合调试程序会更容易一些,+ Linux Server 需要附加进程后才能捕捉断点,但 +WSL 无需附加进程,就像本地调试一样。
经简单的索引,发现没有人介绍过这块内容,因此我打算在这里分享一下我使用 Visual Studio 2017 + WSL 的经历。
2. 安装配置 WSL
2.1. 安装 WSL
WSL 是出现很久的 Windows 10 特性了,我在 16 年 7 月份就曾使用过(不过还是 Cygwin 更好用)。网上已经有很多介绍如何安装 WSL 的教程了,这里就不赘述了。
Win 键,输入 bash,在筛选器中点选;
Win+R,在「运行」窗口中输入 bash,回车;
万一你之前安装过 WSL,但是和我一样「不幸地」忘掉了账号密码,这里有一份方案:
进入 命令提示符(管理员):Win + X,接着点选或按 A
卸载 WSL:lxrun /uninstall /full
安装 WSL:lxrun /install
2.2. 配置 WSL
2.2.1. 配置 SSH
介绍下我们为什么要配置 SSH。在 Visual Studio 2017 中构建跨平台项目的时候,按下 F5 触发的是「远程GDB调试程序」按钮(与「本地Windows调试器」相对),然后弹出一个弹窗让我们填写远程客户端的 SSH 信息。
这里给出一份翻译自 StackOverflow: 采纳回答的方案:
我成功地通过 127.0.0.1:22 连接上了 WSL,希望这个能帮到你:
sudo apt-get remove openssh-server
sudo apt-get install openssh-server
sudo vim /etc/ssh/sshd_config ,然后禁止 root 登录: PermitRootLogin no
接着在这行下面加一行:
AllowUsers yourusername
(如果你想使用密码登录的话,请保证PasswordAuthentication被设置成yes)
通过添加/修改 UsePrivilegeSeparation no
关闭 Privilege Separation
sudo service ssh --full-restart
2.2.2. 配置开发套件
我不清楚我到底需要安装哪些东西,但我在安装完 gcc / g++ / gdb /gdbserver 之后再摁 F5 就能 run 了。WSL 实际就是个 Ubuntu 系统,我的显示内核版本 3.4.0+,使用sudo apt-get install获取并安装就行。好吧,忍不住继续写了下去:
sudo apt-get install gcc g++ gdb gdbserver
<h2 id="23-使用-visual-studio-. 使用 Visual Studio 2017
2.3.1. 新建跨平台项目
模板 - 其他语言 - VIsual C++ - 跨平台 - Linux,然后从四种模板:空项目、控制台应用程序,闪烁,生成文件项目中选一个吧。我鼠标指针停留在闪烁上只是因为我想知道这玩意儿到底是个啥,作为 demo 我们最好选择控制台应用程序。
好吧,还是简单介绍下各种模板的特征吧:
控制台应用程序:
提供一个主要语句为 printf 的 main 文件,控制台版的 helloworld;
提供闪烁 LED 的 DEMO,ARM 开发版的 helloworld;
生成文件项目:
它的英文名叫做「Makefile Project」;
2.3.2. 编码
这是我写的一份用来测试 demand paging 的代码,通过 mmap 系统调用向操作系统申请 1G 的空间并迭代写入。mmap 是 Linux 提供的系统调用。
#include &stdio.h&
#include &sys/mman.h&
#include &unistd.h&
char *HUGE_ARRAY;
size_t HUGE_ARRAY_SIZE = 1024 * 1024 * 1024;
int main() {
HUGE_ARRAY = (char *)mmap((void *)0x, HUGE_ARRAY_SIZE,
PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0);
printf("%p\n", HUGE_ARRAY);
size_t i = 0;
for (; i & HUGE_ARRAY_SIZE; i += 1) {
HUGE_ARRAY[i] = 1;
if ((size_t)&HUGE_ARRAY[i] % (128 * 1024 * 1024) == 0){
printf("Just input something:")
getchar();
2.3.3. 录入 SSH
如果你是第一次摁 F5,VS 会弹出一个窗口帮助你填写 SSH,否则你就没有这个待遇了。你至少有两种方法进行补救:
工具 - 选项 - Cross Platfrom - Connection Manager
在快速启动窗口(Ctrl + Q),输入 Connect,然后在自动补全窗口点选
2.3.4. 调试程序
在添加断点/运行程序之后,你的程序理应驻留在断点位置,并且你可以通过 测试-Linux Console 打开终端,同程序进行交互。终端见右下角黄色标题框部分。
2.3.5. 为代码补全添加对 Linux 库函数的支持
虽说上述代码可以直接运行,然而宇宙第一 IDE 竟然不提供代码补全,反而告诉你头文件找不到/函数未定义,并且打了一大堆的波浪线~~~~~~~~~~~~~~~~!想逼死强迫症么?
我们可以通过将 Linux Headers 拷贝到 VS Linux 头文件目录中为 VS 添加对 Linux 库函数的支持!
通过如下步骤打开下图窗口:
解决方案 - 项目名 - (右键) - 属性 - 配置属性 - VC++目录 - 常规 - 包含目录 - (单击) - (下箭头) - 编辑
找到 Linux 头文件所在目录。我的目录是这样的:
D:\Software\Studio\Visual Studio Community 2017\Common7\IDE\VC\Linux\include\usr\include\
要知道 WSL 是可以直接访问 Windows 目录的。WSL 根目录下的mnt/下保存着各逻辑分区的卷标,你会看到c、d、e
etc. 这样的目录名。我们可以直接把 WSL 中的 Linux 头文件拷贝到 VS 的 linux 头文件目录中,比如:
cp usr/include/ /mnt/d/Software/Studio/Visual\ Studio\ Community\ 2017/Common7/IDE/VC/Linux/include/usr/include/ -R
(当然,我是拷贝到 D 盘再手工拷过去的,这里有小白鼠嘛?)
然后我们的 VS 就没了那一堆下划线了,宇宙第一的代码补全也回来了 (^ _^)v。
吐槽:CSDN 的文本编辑器真是 巨!难!!用!!!
本文已收录于以下专栏:
相关文章推荐
/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务如果想要用false在禁止login的同时允许ftp,...
Ubuntu11.04默认的是UFW(ufw 即uncomplicated firewall的简称,不复杂的防火墙,繁琐部分的设置还是需要去到iptables)防火墙,已经支持界面操作了。在命令行运行...
在ubuntu下面开放端口好像主要有两种方法,一种是ubuntu自带的防火墙,一种是iptables,这里我们主要使用iptables。本文的系统版本为ubuntu14.04和ubuntu16.04
ufw是一个主机端的iptables类防火墙配置工具安装:
sudo apt-get install ufw
开启,建议默认关闭所有外部访问
sudo ufw enable
局域网内搭建内部小型git仓库(本办法只适用于少人的小团队搭建属于自己内部的git服务器)
1.扫描端口
用ubuntu自带的网络工具中的端口扫描不够强大,扫描结果可能不全,推荐用nmap,黑客常用的端口扫描利器!安装方法:sudo apt-get install nmap ,想扫描端口nm...
首先查看端口
xjj@ubuntu:~$
netstat -anp
显示很多,找到自己想要关闭的端口
xjj@ubuntu:~$
netstat -anp | grep 9...
S2-052的POC测试,高危Struts REST插件远程代码执行漏洞(S2-052),S2-052的 PocS2-052的POC测试(原名:Tomcat部署war)原文地址:http://blog...
VS2015推出了跨平台开发,其中包括了对Linux程序开发的支持,最近刚好需要开发Linux程序,对其进行了一些研究。首先介绍下涉及到的开发工具开发工具
VS2015Update3,下文简称VS(可...
目标机上gcc、g++、gdb一定要安装linux引用的头文件需要手动复制到$:\Program Files (x86)\Microsoft Visual Studio\2017\Community\...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)2010年5月 C/C++大版内专家分月排行榜第三2010年3月 C/C++大版内专家分月排行榜第三2010年1月 C/C++大版内专家分月排行榜第三
2010年7月 C++ Builder大版内专家分月排行榜第三2008年5月 C++ Builder大版内专家分月排行榜第三2007年10月 C++ Builder大版内专家分月排行榜第三
2010年4月 Delphi大版内专家分月排行榜第二2010年3月 C++ Builder大版内专家分月排行榜第二2009年9月 C++ Builder大版内专家分月排行榜第二2005年10月 Java大版内专家分月排行榜第二2006年11月 C++ Builder大版内专家分月排行榜第二2006年10月 C++ Builder大版内专家分月排行榜第二2006年9月 C++ Builder大版内专家分月排行榜第二2006年7月 C++ Builder大版内专家分月排行榜第二2004年1月 C++ Builder大版内专家分月排行榜第二2006年1月 Delphi大版内专家分月排行榜第二
2010年5月 C++ Builder大版内专家分月排行榜第三2006年8月 C++ Builder大版内专家分月排行榜第三2004年2月 C++ Builder大版内专家分月排行榜第三2003年8月 C++ Builder大版内专家分月排行榜第三2006年4月 Delphi大版内专家分月排行榜第三2005年12月 Delphi大版内专家分月排行榜第三
2013年3月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 如何用加速器上推特 的文章

 

随机推荐