VisualStudio(vs)开发linux程序配置

您所在的位置:网站首页 ubuntu运行程序密码库放哪个文件夹 VisualStudio(vs)开发linux程序配置

VisualStudio(vs)开发linux程序配置

2024-07-16 22:59| 来源: 网络整理| 查看: 265

文章目录 VisualStudio(vs)开发linux程序配置远程linux环境头文件智能提示工程配置第三方静动态库和头文件的使用路径配置文件复制 其他ffmpeg开发参考

VisualStudio(vs)开发linux程序配置 在开始之前,强烈建议阅读官方文档,或许问题就已经解决了官方文档:https://docs.microsoft.com/zh-cn/cpp/linux/download-install-and-setup-the-linux-development-workload?view=vs-2017 远程linux环境 为了能远程上linux并调试,需要在linux上安装如下工具:gcc、gdb、rsync、zip、make、openssh-server、cmake在ubuntu上则按如下命令安装 sudo apt-get install openssh-server g++ gdb make rsync zip sudo service ssh start

在这里插入图片描述

头文件智能提示 默认情况下虽然可以远程编译通过,但在vs2017上并没有智能提示,多了好多波浪线,看着就很不舒服(据说在linux上安装了zip工具后vs就会自动将头文件压缩复制到windows本地然后提供智能提示,反正我是没享受到,因此只能手动拷贝了)为了解决这个头文件的问题,需要将目标主机即linux上的头文件拷贝到本地,做法如下首先将远程linux上的/usr/include里的所有文件拷贝到windows本地之后在vc++目录里的包含目录配置下拷贝过来的文件的目录 在这里插入图片描述这样波浪线就消失了,而且可以跳转到定义了 工程配置 首先要修改下远程根目录,如下图注意,默认是~/projects,表示在用户目录的projects下,但是这个~会导致奇怪的问题,因此我们最好为其指定一个明确的路径,如我这里就放在/root/projects下了在这里插入图片描述 第三方静动态库和头文件的使用 第三方库的使用涉及到文件的复制问题,建议先看下官方文档关于复制源的说明,地址如下 https://docs.microsoft.com/zh-cn/cpp/linux/prop-pages/copy-sources-project?view=vs-2017 路径配置 假如工程引用了第三方的静动态库(自然包含头文件了),那么怎么办呢项目中的源文件vs会帮我们自动拷贝到linux上(路径就是$(RemoteRootDir)/$(ProjectName)),因此我们得手动将库和头文件拷到linux存放源文件的地方,在本例中$(RemoteRootDir)=/root/projects;$(ProjectName)=ffmpeg_decode;静动态库和头文件分别放在lib和include文件夹里,示例如下 -/ -root -projects -ffmpeg_decode -xxx.cpp -lib -xxx.a -include -xxx.h 然后配置包含目录,如下图,第一个路径主要是给linux上用的,这个路径要根据实际设置(即linux上的路径),第二个路径则是给vs上用的(即windows本地的路径)在这里插入图片描述头文件配完了,接下来需要配置第三方库打开链接器,在常规下配置linux上库的路径,在输入上配置库的名称,如下图在这里插入图片描述在这里插入图片描述以上因为主要是在linux上编译,因此常规库里的附加库目录只是配置了在linux上的路径,在本示例中是$(RemoteRootDir)/$(ProjectName)/lib输入则是配置库的名称,本示例中由于引用的是ffmpeg的库libavcodec.a,libavformat.a等库,故配上avcode,avformat等(前缀和后缀不用写) 文件复制 路径都配置好了之后,接下来就是文件的拷贝了,即将第三方库和头文件拷贝到我们之前的路径配置,使之相对应你可以直接将文件手动复制到linux上对应位置,但这样有个问题,就是vs上工程在清理后远程所有文件都消失了,又必须得重新手动拷贝,这样太麻烦了,因此必须寻求自动复制的方案,如下如果文件比较少,那么可以直接在配置属性的复制源里添加即可,如图在这里插入图片描述这样在运行时就会将windows本地的文件复制到linux上指定目录了,本例展示了静态库.a的复制,其他文件也是如此但是有可能文件太多了,一个一个这样写也太麻烦了,幸运的是官方对此有一定解决方案,如下图 在这里插入图片描述于是打开项目的vcxproj文件,将要复制的东西添加如下 ... 保存后再试试吧,文件在远程时本地的就会被复制过去了 其他 当程序有日志输出时,我们只能在linux控制台才能看到,如下在这里插入图片描述 ffmpeg开发 可能会报pthread相关的错误,因此需要我们将pthread链接过去(-lpthread,其中l是L的小写,并不是i的大写I,真是讨厌,这两个看起来是一模一样的),如下 在这里插入图片描述可能会报ffmpeg库里的很多函数未定义,这个主要是由于库的依赖导致的,将被依赖的放在依赖的前面即可,如avformat依赖了avcodec,因此要放在avcodec的前面,如图在这里插入图片描述 参考

Visual Studio 2017:Linux C++ 开发教程(WSL篇)_运维_猫科龙-CSDN博客\nhttps://blog.csdn.net/maokelong95/article/details/64523303/

使用Visual Studio 2017开发Linux程序 - dchao - 博客园 https://www.cnblogs.com/dongc/p/6599461.html

vs2017 编译C++ 生成linux下可运行的.out文件_运维_QuanWaiRen0的博客-CSDN博客 https://blog.csdn.net/QuanWaiRen0/article/details/80697154

Linux下undefined reference to ‘pthread_create’问题解决_运维_jiangxinyu的专栏-CSDN博客\nhttps://blog.csdn.net/jiangxinyu/article/details/7778864



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3