第一篇 环境搭建 工欲善其事,必先利其器
前言
对于一个windows程序员开发Linux或者跨平台开发的时,往往有不熟悉开发环境,不会写Makefile等尴尬,本文来自于项目开发的笔记,使用熟悉的IDE环境(Visual Studio) 相信能很好的帮助开发者。
在开始之前,你需要安装Visual Studio 2015,VMware,并使用WMware搭建一个虚拟机,本文使用的ubuntu-20.04 64位版,虚拟机安装比较容易,本文不再赘述!
一. Ubuntu端安装与配置
1.1 环境安装
在Ubuntu主目录点右键选择在终端打开输入下列命令(注意空格)
g++ gcc开发环境安装
sudo apt-get install build-essential
安装ssh gdb gdbserver服务
sudo apt-get install openssh-server gdb gdbserver
启动ssh服务
sudo service ssh start
查询ssh服务是否启动
sudo service ssh status
1.2 查看IP地址
可以通过命令行查看,也可以选择使用图形界面查看
1.2.1命令查看:
在Ubuntu主目录点右键选择在终端打开输入下列命令
ip addr show
出现以下界面,红色框选部分即为IP地址,我们需要记住Ubuntu IP地址,后面使用远程连接需要输入。
1.2.2图形界面查看
二.windows端安装:
安装并运行Visual Studio 2015,在菜单栏工具(Tools)下选择扩展与更新(Extensions and updates)
安装 Visual c++ for Linux Devlopment
在左边Tree节点选择在线(online) 最右边输入框键入linux,出现如图结果,下载VC_Linux并安装,默认安装即可!
更多设置可以参考
https://www.pianshen.com/article/9454401117/
三.工作目录和环境变量
3.1在windows下创建
创建一个名为projects的文件夹,并建立bin和include两个子文件夹**如图所示
(VC Linux默认使用projects,您可以根据自己喜欢更改)
3.2在Ubuntu创建
创建一个名为projects的文件夹(HOME下),您可以使用命令创建,也可以使用Ubuntu图形界面,结果如下图:
3.3修改.bashrc文件
在$HOME目录下Ctrl+H显示.bashrc文件修改.bashrc文件,添加LD_LIBRARY_PATH
export LD_LIBRARY_PATH=~/projects/bin:$LD_LIBRARY_PATH
四.第一个项目(helloworld)
打开Visual Studio 2015 选择项目->新建.在弹出对话框选择 Installed-Templates->Cross platform->linux.如图所示:
点击OK,工程创建成功!
选择默认的Remote GDB Debugger 并启动:
4.1连接到linux
点击运行后会提示您连接到Linux
接下来输入虚拟器或真机地址 用户名密码,连接完成,如图所示
:
如果你想修改连接信信息请以此点击
Tools > Options > Cross Platform > Linux
如果您之前没进行任何更改,大概率会编译成功但是得到以下错误:
别急。让我们修改相关的参数即可!
4.2更改工程属性
在helloworld(Linux)点右键选择Property在出现的对话框Output Directory 更改路径为相对路径 “…\bin”,如果所示:
4.3更改调试路径
注意Debugging Mode选择gdb, Working Directory要么使用绝对路径要吗使用~表示
H
O
M
E
路径,直接用
HOME路径,直接用
H
OME
路径,直接用
HOME路径不行,直接用…之类的相对路径也不行,原因还不清楚。
1.选择Remote GGB Debuger
2.Working Directory 设置为 ~/projects/bin
3.Debugger port Number 设置为 4445
4.Remote Debugger port Number 设置为 4444
5.Debugging Mode 设置为gdb
如图所示:
4.4更改链接库路径
测试表明:只能在Addional Library Directrories里设置$HOME/projects/bin可以工作,但是在VC++ Directroies里这样设置是不工作的。出现错误 /usr/bin/ld: cannot find -lXXX
再次启动调试,OK一切正常如下图:
转到Ubuntu查看~/projects/bin 可以看到已经生产了可执行文件 helloworld.out,在终端运行一切正常!
未完待续