根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成。主要是作为个人学习记录。有错误的地方,Robin欢迎大家指正。
在《使用VS创建Linux静态库和动态库》文档中,我们介绍了如何在VisualGDB创建的应用程序中如何使用VisualGDB创建的库(静态库/动态库)。本文介绍在VisualGDB项目中使用外部的Linux库(非VisualGDB创建的)。我们创建一个Linux项目,该项目使用Magick++库来翻转图片。
1 启动Linux项目向导
启动VS,选择”File”->”New”->”Project”,然后选择”VisualGDB”->”Linux Project Wizard”。设定项目名称和位置后,点击”OK”按钮:
2 选择项目类型
在下一页,项目类型选择”Application”,然后点击”Next”:
3 选择远程Linux机器
在下一页选择你想使用的Linux机器。我们需要在Linux机器上安装Magick++库,所以在”Remote computer”的右侧点击console按钮来打开一个新的SSH console:
4 安装libmagick库
安装libmagick++-dev包。如果你的Linux系统是基于Debian的,在console窗口中运行如下命令:
sudo apt-get install libmagick++-dev
当安装完成后,回答VisualGDB向导并点击”Next”。
5 设置源码访问方式
为了使Linux机器轻松访问Windows项目文件夹中的文件,我们将使用共享文件夹方式,选择”Mount a shared Windows folder”并点击”setup”:
6 创建共享文件夹
VisualGDB会建议共享包含项目文件夹的其中一个文件夹。本例中,项目位于目录” c:projectsRotateDemo”下,我们将共享目录” c:projects”。为了让Linux电脑访问你的共享文件夹,你需要提供有效的凭证:
7 选择登录点(mount point)
点击”OK”后,VisualGDB会让你选择mount point,用于映像你的文件夹。本例中,我们使用” /opt/VisualGDB-projects”:
8 检查Windows和Linux之间的通信路径状态
文件夹被共享及登录后,在向导页面的底部有个图表,用来检测Linux和Windows之间的通信路径状态:
9 完成项目创建
点击”Finish”后,VisualGDB就创建了一个”Hello,World”项目,点击”Ctrl-Shift-B”来build:
10 创建一张图片
配置好共享文件夹后,Linux电脑就能够自动访问Windows项目目录下的文件,也能在该目录下写文件。在项目目录下创建一个名叫ArrowRight.png的文件,并在上面画一个箭头:
11 添加远程ImageMagick库
现在需要配置IntelliSense来支持ImageMagick头文件。在项目上右键,选择”VisualGDB Project Properties”,进入IntelliSense页面:
点击”Add Remote”:
点击浏览按钮并选择” /usr/include/ImageMagick”:
点击”OK”会保存所有的设置。VisualGDB会将目录添加到IntelliSense搜索路径下。如果你近期也安装了其他的库,点击”Edit Remote Cache”,选择所有的目录并点击”Reload”:
12 修改main源码
修改main源码的内容如下:
#include<Magick++.h> #include<stdio.h> int main(int argc, char *argv[]) { if (argc < 3) { printf("Usage: %s <Input file> <Output file>", argv[0]); return 1; } printf("Opening... "); Magick::Image img(argv[1]); printf("Rotating... "); img.rotate(45); printf("Saving... "); img.write(argv[2]); return 0; }
13 处理build错误
Build项目时会提示错误信息:
产生这个错误是因为,GCC include目录和IntelliSense include目录是分开管理的。要解决这个问题,需要打开文件flags.mak并在INCLUDE_DIRS 声明中添加/usr/include/ImageMagick。现在build会成功但会提示链接错误:
14 修改链接错误
要修改链接(linker)错误,需要将Magick++库添加到LIBRARY_NAMES中:
注意一下,真实的库名字为libMagick++.a,该库位置为标准库的其中一个目录。在flags.mak文件中删除lib前缀,就像GCC按约定需要的一样。
15 提供命令行参数来运行程序
运行前我们需要提供命令行参数。最快捷的方式是使用VisualGDB工具栏。在工具栏区域右键使能工具栏并选择VisualGDB。然后在文本区域输入” ArrowRight.png ArrowRotated.png”:
16 运行并观察结果
按F5运行程序,或者按F10单步进入:
打开项目文件夹查看程序创建的ArrowRotated.png文件:
在VS输出面板的VisualGDB Program Output视图里,可以看到最新的调试信息: