使用Visual Studio 2017开发Linux程序

环境:

  win7_x64旗舰版、VS2017企业版、VMware10.0.2、CentOS7

  在CentOS7上首先需要安装gcc、g++和gdbserver,这里就不多说

一、安装VS2017

  1.1 安装VS2017时,必须要勾选“使用C++的Linux开发”工具集

二、创建Linux项目

2.1 创建一个名称为"TestLinux"的解决方案,我们稍后会在这个解决方案内新建多个Linux项目(包括可执行程序、动态库、静态库等)

2.2 添加新建项目可执行程序项目"test"

2.2.1

2.2.2

2.3 添加新建项目,创建动态库

2.3.1

2.3.2

2.4 添加新建项目,创建静态库

2.4.1

2.4.2

三、添加测试代码

3.1 "test"项目中main.cpp代码:

#include <cstdio>

#include "static_library/static.h"
#include "dynamic_library/dynamic.h.h"

int main()
{
    printf("hello from test!\n");
    printf("static_library test : %d\n", static_test(1));
    printf("dynamic_library test : %d\n", dynamic_test(1));
    return 0;
}

3.2 在"static_library"项目中添加static.h和static.cpp

static.h

#ifndef _STATIC_LIBRARY_H_
#define _STATIC_LIBRARY_H_

int static_test(int n);

#endif // !_STATIC_LIBRARY_H_

static.cpp

#include "static.h"

int static_test(int n)
{
    return n * 3;
}

3.3 在"dynamic_library"项目中添加dynamic.h和dynamic.cpp

dynamic.h

#ifndef _DYNAMIC_LIBRARY_H_
#define _DYNAMIC_LIBRARY_H_

int dynamic_test(int n);

#endif // !_DYNAMIC_LIBRARY_H_

dynamic.cpp

#include "dynamic.h"

int dynamic_test(int n)
{
    return n * 2;
}

四、项目配置

4.1 "常规"配置

配置主程序:

本地输出目录:"$(ProjectDir)bin\$(Platform)\$(Configuration)\"修改为"$(ProjectDir)..\bin\$(Platform)\$(Configuration)\",是为了将所有项目输出文件放到同一个目录中,方便相互引用。

目标文件扩展名:".out"修改为"",是为了不生成文件后缀,一般的Linux可执行程序是没有扩展名称的,可修改也可不修改。

远程生成根目录:"~/projects"修改为"/root/projects/$(SolutionName)","~"和"/root"是等价的,但是运行时动态库搜索目录不支持~路径,添加“$(SolutionName)”是为了区分不同的解决方案下相同名称的项目。

远程生成项目目录:"~/projects"修改为"/root/projects/$(SolutionName)","~"和"/root"是等价的,但是运行时动态库搜索目录不支持~路径,添加“$(SolutionName)”是为了区分不同的解决方案下相同名称的项目。

配置动态库:"$(RemoteRootDir)/$(ProjectName)"修改为"$(RemoteRootDir)"

本地输出目录:"$(ProjectDir)bin\$(Platform)\$(Configuration)\"修改为"$(ProjectDir)..\bin\$(Platform)\$(Configuration)\"

目标文件扩展名:".out"修改为".so"

远程生成根目录:"~/projects"修改为"/root/projects/$(SolutionName)"

配置类型:"应用程序(.out)"修改为"动态库(.so)"

配置静态库:

本地输出目录:"$(ProjectDir)bin\$(Platform)\$(Configuration)\"修改为"$(ProjectDir)..\bin\$(Platform)\$(Configuration)\"

目标文件扩展名:".out"修改为".a"

远程生成根目录:"~/projects"修改为"/root/projects/$(SolutionName)"

配置类型:"应用程序(.out)"修改为"动态库(.a)"

4.2 "调试"配置

程序:"$(RemoteTargetPath)"修改为"$(RemoteRootDir)/bin/$(Platform)/$(Configuration)/$(TargetName)$(TargetExt)",因为前面修改了本地输出目录导致远程输出目录也相应发生变化,这里修改一致。

工作目录:"$(RemoteOutDir)"修改为"$(RemoteRootDir)/bin/$(Platform)/$(Configuration)",这个是远程主机CentOS上的路径,如果设置不正确将找不到引用的动态库,调试程序无法启动。

其他调试程序命令:""修改为"set solib-search-path $(SolutionDir)bin/$(Platform)/$(Configuration)",这个是本地路径,调试符号是从本地加载的,否则调试动态库时,gdb会输出没有找到调试符号文件。

4.3 "C/C++"配置

附加包含目录:在"$(StlIncludeDirectories);%(AdditionalIncludeDirectories)"前面添加"./..;",这个是远程主机CentOS上的路径,相当于gcc编译时指定"-I[路径]"选项;一般是先把需要的头文件从CentOS复制到windows,然后设置"配置属性"->"VC+ +目录"->"包含目录",这样在编写Linux程序时,提示信息更加的友好^^。

4.4 "链接器"配置

附加库目录:在"%(AdditionalLibraryDirectories)"前面添加"$(RemoteRootDir)/bin/$(Platform)/$(Configuration);",这个是远程主机CentOS上的路径,相当于gcc编译时指定"-L[路径]"选项,用于指定引用动态库和静态库的目录;

库依赖项:添加"dynamic_library;static_library",相当于gcc设置"-l[库名称]"选项,用于指定链接时所需要的动态库和静态库名称,如果找不到依赖的库文件,链接时会错误,显示"无法解析的符号"。

其他选项:添加"-Wl,-rpath=$(RemoteRootDir)/bin/$(Platform)/$(Configuration) ",指定程序运行时搜索动态库的路径。

五、开始调试

5.1 设置远程调试主机

5.2 显示Linux控制台

最后的Demo下载地址:TestLinux.zip

时间: 2024-10-09 18:19:01

使用Visual Studio 2017开发Linux程序的相关文章

使用Visual Studio 2017作为Linux C++开发工具

使用Visual Studio 2017作为Linux C++开发工具

我的全栈之路-Java基础之macOS+Visual Studio Code开发Java程序

我的全栈之路-Java基础之macOS+Visual Studio Code开发Java程序 我的全栈之路 3.1 开发环境说明 首先说明下使用软件的版本,操作系统是基于macOS10.14.5,然后在macOS上安装了JDK11.03,如果想要了解macOS下JDK的安装,可以参考我的全栈之路-Java基础之macOS安装JDK,编辑器选用了微软公司开源的Visual Studio Code. 软件名称 软件版本 操作系统 macOS10.14.5 JDK JDK11.0.3 编辑器 Visu

采用Visual Studio 2017编译c程序教程

第一步打开Visual Studio 2017 第二步按Ctrl+Shift+N打开项目或者依次点击文件-新建-项目 左边选中Win32右边选中第一项,下面是文件位置和文件名称 设置好后确定 点击下一步 按如图所示勾选点击完成然后 右键点击源文件,添加,新建项然后 中间框选择c++文件,下面名称位置原来是.cpp文件,这是编写c++的,如果要编写c程序的话要改成.c 然后就可以点击添加 然后各位小伙伴就可以编写c程序了 编写完后可以右击c程序文件编译,然后可以选择调试下拉菜单选择执行,或者直接按

使用Visual Studio 2015开发Android 程序

环境配置: 操作系统:win 7 64位 IDE:Visual Studio 2015 SDK:installer_r24.3.3-windows 安装前提: 编辑hosts文件(在附件可下载)因为安装过程中要联网更新和注册 安装完成VS之后直接新建android程序会提示: --------------------------- Microsoft Visual Studio --------------------------- 值不能为 null.参数名: path1 ----------

使用Visual Studio 2015开发Qt程序

0.开发环境及工具 操作系统:Windows 7 x64 编译器:Visual Studio 2015 社区版 Qt版本:5.6.0 编程助手:Visual Assist X 2074. 1.安装 需要依次安装以下工具:vs2015.Qt 5.6.0 for Windows 32-bit (VS 2015).Perl. Qt安装路径:D:\Qt\Qt5.6.0_x86.安装完毕后添加如下路径到系统环境中:D:\Qt\Qt5.6.0_x86\5.6\msvc2015\bin. Perl安装路径:C

Visual Studio 2017 发布

https://www.visualstudio.com/zh-cn/news/releasenotes/vs2017-relnotes 发布日期:2017 年 3 月 7 日 摘要 开发:快速导航.编写并修复代码 新的安装体验 - 降低了最小内存需求量以实现更快.更定制化的安装,并且支持脱机安装. Visual Studio IDE - 大幅改进了 Visual Studio 2017,包括减少启动和解决方案加载时间.改进登录和标识.改进代码导航以及增添打开文件视图和链接的服务,实现了应用和任

Visual Studio 2017 RC 下载 最新版本的发行说明

我们非常荣幸地宣布 Visual Studio 2017 RC 现已推出! 此新版本包括我们最新的功能创新和改进. 注意 这里是 Visual Studio 2017 最新版本的发行说明. 下载:Visual Studio Enterprise 2017 RC 若要了解有关其他相关下载的详细信息,请参阅下载页. 另请参阅 Visual Studio 2017 系统要求和 Visual Studio 2017 平台目标以及兼容性. 重要事项 虽然一般情况下支持在生产环境中使用 Visual Stu

【Asp.Net Core】在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序

前言 Visual Studio 2017已经发布了很久了.做为集成了Asp.Net Core 1.1的地表最强IDE工具,越来越受.NET系的开发人员追捧. 随着Google Angular4的发布.我一直在想,怎么能够用这个地表最强IDE工具编写Angular4的Asp.Net Core项目.经过不懈的研究.终于的得到了一套很好的解决方案与大家分享. 文章转载请著名出处:http://www.cnblogs.com/smallprogram 我们的目的 随着Web技术的快速发展,新的技术层出

Visual Studio 2017新版发布,极大提高开发效率丨附下载

最新的Visual Studio 2017免费下载[包含Professional.Enterprise.Community版本] 为任何开发.应用和平台提供无与伦比的效率,Visual Studio 2017 候选发布. 提高了效率 代码导航.IntelliSense.重构.代码修复和调试的增强功能,无论使用哪种语言或平台,都能节省你在日常任务上花费的时间和精力. 对于采用 DevOps 的团队,Visual Studio 2017 简化了你的内部循环,并通过全新的实时功能(如实时单元测试和实时