该方法是基于VS2019的远程调试Linux的方案,使用的是UOS系统,本文不会去详述如何远程调试Linux和如何新建解决方案中的.so项目和.out项目
只关注于如何令.out项目依赖.so,并成功调用运行
以一个如上图结构的解决方案为例子,SysInfo是你的SO库项目,Test是你的.out项目
然后我们主要配置的就是这个.out项目
我们首先如上图所示,选中这个项目,然后右键他展开列表,并选择项目依赖项
然后给你依赖的So项目打个钩选中它
随后确定,然后重新右键项目,并点击“属性”展开属性页如下
随后在所有配置下的所有平台的前提下,我们编辑“调试”中的“其他调试程序命令”
填写命令如下
set env LD_LIBRARY_PATH /data/home/admin/projects/SysInfo/bin/$(Platform)/$(Configuration)
这个路径是你生成过一次SO项目后,在Linux中的SO文件的所在目录
设置这个可以让你在VS中调试的时候不用担心环境目录导致无法运行
之后转到“常规”,并选择“附加库目录”,填入如下命令
该命令使得编译器得以找到依赖库的位置
/data/home/admin/projects/SysInfo/bin/$(Platform)/$(Configuration)
最后,在“输入”中的“库依赖项”填入你的依赖库名称,就是把生成的libSysInfo.so去掉lib和.so,中间的SysInfo就是你的依赖库名称
到这里,依赖配置就完成了,可以直接点击调试以运行
我的Test控制台项目的代码如下所示
#include <iostream>
using namespace std;
#include "../SysInfo/SysInfo.h"
int main() {
cout << "Hello ";
cout << SySInfoNameSpace::GetMemTotal();
}
上述代码其中,SySInfoNameSpace::GetMemTotal()是我SysInfo依赖库中的方法。
PS:Linux控制台窗口可以通过“调试”中常驻打开
如下: