如何在 visual studio程序 上用 C/C++ 写 Linux 程序

如何在visual studio2015 中配置编写C,C++程序_百度知道
如何在visual studio2015 中配置编写C,C++程序
提问者采纳
打开visual studio 2013 文件--新建--项目--项目类型(visual C++)--win32--win32控制台应用程序--填写项目名称.,项目解决方案名--确定--下一步--选择控制台应用程序--空项目--完成。 打开解决方案资源管理器--在源文件处点击右键--添加-,位置
来自团队:
其他类似问题
为您推荐:
做爱的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁酷勤网 C 程序员的那点事!
当前位置: >
浏览次数:次
如今我们正在开发一个新的插件,一个能够让开发者在 Visual Studio (以下简称 VS ) 上建构能够在 Linux 上运行 C++ 程序的套件。开发者可以借由这个插件将 C++ 程序移转到 Linux 服务器、PC 以及移动设备上,也同时可以借由这个插件将这些机器连结至你的 VS 上。
VS 将会自动地复制一份并在远端建构你的来源档,再运行带有除错器的应用程序。我们的这项计划也针对特殊的架构提供系统支持,包含 ARM 等。
下方文章将继续介绍使用我们这套全新的 Linux 计划。
目前我们仅支持在远端的目标 Linux 机器提供建构服务。我们并没有限制特定的 Linux 发布版本,但我们仍旧在一些工具的表现上有些相依性的差异。需要特别注意的是,我们需要 openssh-server、g++、gdb 以及 gdbserver。用你最习惯的套件管理工具来安装他们,例如在 Debian 类型的 Linux 就可以使用:
sudo apt-get install openssh-server g++ gdb gdbserver
下载或从 Visual Studio 上的插件管理员来获得。目前我们在 Visual Studio 上的 Android Tools 上已有相依支持。如果你已经安装了 VS 的话,你可以借由 Add Remove Programs 来新增这些功能,编辑 VS 然后在 Visual C++ 移动设备开发下选择他们。
要开始一个新的项目可以透过以下路径:Templates & Visual C++ & Cross Platform & Linux。
目前我们有三个可以使用的模板:针对像 Raspberry Pi 等物联网装置设计的 Blink、最基本的应用程序样板 Console Application 以及让开发者自己选择需要加入的来源档以及从预设设定起的 Empty。
你的第一个 VS Linux 项目
我们从建构一个主控台 app 开始。从模板新增完你的项目后,在 printf 叙述句的地方设下一个中断点,然后敲击 F5 或远端 GDB 除错器按钮。根据预设值,这个主控台 app 设定与 debug/x64 的环境相容。如果你的远端连线标的是 x86 或 arm 架构,那你需要先改变上述设定。在我演示的这个范例我使用的是 x64 Ubuntu VM。
由于这是第一次连结到标的的 Linux 机器,所以会弹出一个连接资讯视窗,是由在建构项目时所触发的。
我们同时支持密码以及认证形式的验证方式,包含使用复杂密码的认证。在第一次成功连接后,我们会将你的连结资讯储存以便在日后需要连接时快速存取。你可以从 Tools & Options & Cross Platform & Linux 的路径来管理你已储存的连结资讯,以及是的,密码/复杂密码是已加密形式储存的。我们也同时计划在未来的更新版本中,在连接时无需储存连结资讯。
在连接的过程中,你的来源档会被复制到远端的 Linux 机器上,并触发 gcc 并根据项目的属性设定来建构原始码。在项目建构完毕之后,你的程序将会在远端的机器上执行,并停止在我们先前所设下的中断点上。
Linux 项目属性
我们可以借由以下的项目属性来理解,东西是怎么被部署到远端 Linux 机器上的。
在 remote settings 下,你可以看到 remote 根目录是预设在 ~/projects/ ,且该路径下的远端项目目录会与我们的项目名称相符。从 Linux 机器上去看的话,我们可以在 ~/projects/ConsoleApplication1 下发现建构后的成品 main.cpp。
根据项目的 General setting,可以了解到我们针对 Output 以及 Intermediate 路径是怎么设定的。除此之外,你可以发现到这个项目是被设定成一个应用程序的 & 代表我们的项目执行档 ConsoleApplication1.out 是在 bin/x64/Debug/ 路径下。另外可以注意到的是,我们也同时支持静态以及动态的设定格式。
Linux 物联网项目
现在我们来研究物联网装置的部分 & 以 Raspberry Pi 为例。你可以使用任何类型的 Pi 来执行 Raspbian。在我们的 Blink 范例里我们使用 wiringPi & 如果你没有这个安装选项你也可以选择从 apt 或来源档来安装。在 Tools & Options 搜寻 Linux 来新增一个连结,然后点击 &add& 来新增一个连结到你的 Raspberry Pi。
从项目属性设定的地方查看 Build Events 下的 Remote Post-Build Events。
你可以借由这个设定在远端已建构好项目的 Linux 标的上执行指令。这个模板已先预设了针对 LED 输出的 GPIO pin,所以我们不需要再以 root 的身份执行我们的执行档。
现在将一个 LED 连接到 Raspberry Pi 上的 pin 17 位置(如下图)。
打开 main.cpp 档,并在第一个 digitalWrite 后 delay call 的地方设下中断点,然后敲击 F5。你可以看到你的 LED 灯亮起,且执行程序会在你下中断点的地方停住。将你的程序持续执行到下一个 digitalWrite call 之后便可以看到 LED 灯熄灭。
可以透过浏览我们的物联网研发专页,来追踪所有我们目前针对这样的系统所释出的功能。
桌面应用程序
我们刚已在上述的文章中,介绍了无介面 (headless) 以及装置型的 Linux 应用程序,那桌面型的呢?在这里我们将介绍一点特别的:我们将在 Linux 桌面上执行一个 OpenGL 应用程序。首先要确定的是,你的 Linux 桌面已经设定为包含 OpenGL 的环境,下述是我们会需要用到的 apt 套件:libgles1-mesa、libgles1-mesa-dev、freeglut3 以及 freeglut3-dev。
接下来请先创建一个空的 Linux 项目,然后前往 教学下载旋转方块的来源档,将其解压缩并将 main.c 加到你的项目下。要能够运行 Intellisense,你需要将 OpenGL 的标头 (headers) 新增到 VC++ Directories,你可以从里下载他们。现在前往你的项目属性设定,然后新增 export DISPLAY=:0.0 到 Pre-Launch command 下。
然后,在 Linker Input 下新增 &m;GL;GLU;glut& 到 Library Dependencies 栏位。
另外,确认你的远端设定是对应到对的机器。
接下戆聪 F5。
还有一些有趣值得下中断点的地方,例如大约在 80 行左右的位置有可以调整方块旋转的设定(试着调整看看 alpha 值),或在 KeyboardFunc 里可以检查按下键盘时所输入的值。
开始实做原生的 Linux 应用
我们期望您与我们对于这些新开放的可能拥有一样的期待。
安装 ,尝试看看并告知我们哪些是你可以成功运行,以及哪些是你遇到的阻碍或遭遇任何问题。如果你有兴趣的领域是在物联网的部分的话,可以前往关注我们的以获取最新资讯。你可以借由这个部落格,或展览页的额外分页、VS 回馈频道以及 Twitter 上的 、或我的帐号联系到我们。
& 相关主题:6394人阅读
带你玩转Visual(21)
编程工具(22)
VS构建工具介绍
我们都知道C/C++源代码要生成可执行的.exe程序,需要经过编译、链接的过程。你在VS工具中只需要选择菜单Build或按一下F5可以编译、链接、运行了,其实IDE帮我隐藏了好多的具体细节。
我先假设VS2010安装在以下目录中:
C:\Program Files (x86)\Microsoft Visual Studio 10.0
打开安装目录下的VSDIR\VC\bin可以看到一系列的可执行程序.exe和批处理文件,这些就是VS2010构建、编译、链接时要用到的工具。看一下几个主要的工具:
cl.exe:编译程序
link.exe:链接程序
lib.exe:加载lib库的程序
nmake.exe:用makefile进行构建、编译的工具
命令行编译程序
要在命令行(而不是VS)中编译程序,先要配制环境变量。网上有些教程说执行VSDIR\VC\bin\vcvars32.bat的批处理就可以了,但我执行这个批处理时会报错:
Setting environment for using Microsoft Visual Studio 2010 x86 tools.
这又是另外一个问题,我就不管了,直接手动配制环境变量把:
右键我的计算机-&属性-&高级系统设置-&高级-&环境变量,配制的环境变量(建议配制在用户的环境变量中)的值如下:
VS2010_DIR:
C:\Program Files (x86)\Microsoft Visual Studio 10.0
C:\Program Files (x86)\Microsoft SDKs
C:\Users\Administrator.dnx\%VS2010_DIR%\VC\%VS2010_DIR%\Common7\IDE
%VS2010_DIR%\VC\%WIN_SDK%Windows\v7.0A\I
%VS2010_DIR%\VC\%WIN_SDK%\Windows\v7.0A\L
D:\CppWorkspace\CommandTest\HelloWorld.cpp:
#include &iostream&
#include &stdio.h&
int main()
std::cout && "This is a native C++ program." && std::
printf("printf: Hello World");
编译结果:
命令行中编译C/C++程序
HelloWorld.obj就是编译出的二进制文件,HelloWorld.exe就是链接成的可执行文件。
在以上的编译过程中我们只用了cl的编译命令就帮我们最终的可执行文件HelloWorld.exe,这是因为cl.exe程序在编译时自己会去调用link.exe、lib.exe等程序。
可通过”cl -help
“查看常用的编译选项
创建小代码
创建快速代码
假设没有别名
控制内联展开
使用全局优化
生成内部函数
更详细的中文介绍也可参考这篇博文:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1559903次
积分:15583
积分:15583
排名:第435名
原创:199篇
转载:102篇
评论:622条
欢迎站内联系
转载或使用本博客原创和翻译文章,请标明出外并附上链接。
欢迎关注微信:思维与睿智
JavaQQ群:
C/C++QQ群:
文章:23篇
阅读:121659
文章:22篇
阅读:132292
文章:19篇
阅读:98960
文章:11篇
阅读:44000
文章:22篇
阅读:288458
文章:17篇
阅读:53361
(1)(2)(5)(4)(4)(2)(3)(3)(11)(4)(2)(13)(11)(8)(5)(4)(8)(1)(8)(2)(2)(3)(14)(5)(5)(10)(8)(4)(8)(9)(5)(8)(17)(4)(10)(5)(13)(13)(8)(1)(7)(6)(8)(9)(6)(7)(6)(1)(2)(3)}

我要回帖

更多关于 visual studio 主程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信