VS开发Linux C++项目
使用VS开发Linux C++项目,对于工作环境为 Windows,编译运行环境为Linux 来说比较方便。其基本方案有以下几点:
- 代码的编辑是在Windows下,通过VS来进行。
- 代码智能提示是将 Linux 编译环境的一些头文件,缓存到Windows下的,以实现智能提示。
- 代码的具体编译过程是通过 ssh 连接到 Linux,在编译时将项目源代码复制到Linux环境下进行编译。
一、开发环境的配置
- VS 需要安装 使用 C++ 的 Linux 开发 的工作负荷。
- VS 创建远程,在 Tool --> Options --> Cross Platform 下选择 Connect Manager ,在此可以选择添加 SSH 连接,以连接到远程Linux上。如下图所示,可以添加多个 SSH 连接,在编译的时候根据自己的需要选择用哪一个连接。
二、创建Linux C++项目
1、创建空项目
- 语言和平台分别选择:
C++
,Linux
,然后选择空项目,即可创建Linux 空的C++项目,如下图
- 添加对应的源文件
2、配置项目
创建的项目需要进行配置,包括包含的头文件、库文件等配置。
-
通用项配置:
Platform Toolset
:平台工具集,用来选择使用什么工具进行编译,如 WSL或Remote LinuxRemote Build Machine
:远程编译设备,为设置使用哪台ssh连接的设备进行编译Remote Root Directory
:远程根目录,默认为~/projects
。 在编译时会将本项目的所有源代码都拷贝到该目录下,以进行编译。因此所有的编译都是在远程Linux设备上进行的,所以在项目中引用的头文件和附加目录也必须是远程Linux上的,而不能是当前Windows设备上的。Configuration Type
:设置项目编译的结果,是可执行文件还是库文件。
-
调试设置:
Debugging Mode
:设置调试模式,在此可以设置为gdb
-
拷贝源代码:
- 默认会将本地的源代码拷贝到远程Linux上。
- 同步是在本地编辑修改之后,才会在编译的时候进行同步。
-
C/C++ 编译配置:
Additional Include Directories
附件包含目录,该附加包含目录会默认将Linux上的/home/username
,/usr/include
,/usr/lib
,/usr/local
等常用头文件都同步包含进来。如果添加其他需要的头文件路径也可以自行添加,但是,这里添加的头文件和对应附加包含路径必须是Linux设备上的,如果不是Linux设备上的,则需要将该路径下对应的头文件也添加进当前项目中,并且在代码中include 相对路径,以保证在编译的时候,对应的头文件被拷贝到 Linux设备上,且能被找到。否则在编译的时候将会提示找不到对应的头文件,因为编译的过程是完全在Linux上调用 g++/gcc 来进行的。
-
链接
编译完成之后,需要将生成的.o
文件进行链接,有时需要将依赖的库文件和其他项目提供的.o
文件一起进行链接,才能生成最终的目标文件。-
Linker -- > General --> Additional Library Directories
:附加库目录。将本项目所依赖的其它库文件所在的目录都添加进来,该目录需要为Linux上的路径。
-
Linker --> Input
:添加项目依赖的库文件和其它依赖项
-
所有的配置项都设置好之后,会在 Command Line
这里生成对应的编译命令,在编译的时候将项目的源文件都拷贝到 Linux上,并启动编译命令进行编译。
项目源代码在编译的时候会拷贝到Linux的默认目录: ~/projects
,此时也可以直接通过 g++ 命令行进行编译,不通过VS。编译的结果位于Linux的项目目录下
【参考资料】