IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 关于Windows平台上vscode利用GCC链接第三方库的过程记录 -> 正文阅读

[开发工具]关于Windows平台上vscode利用GCC链接第三方库的过程记录

过程记录

最近因为测试需要,我在Windows 10操作系统上利用GCC生成并安装libevent的库。我的libevent库的安装路径是D:\Softs\Develop\libevent,目录下包括binincludelib三个目录。然后我用Visual Studio 2019建了一个C项目,并配置好了libevent库。写代码进行测试,一切正常。Visual Studio 2019的相关配置如:

  1. 项目右键 >> 属性 >> VC++目录

    这一部分主要配置包含目录库目录两项,截图如下。
    在这里插入图片描述
    在这里插入图片描述

  2. 项目右键 >> 属性 >> 链接器 >> 输入
    此处主要是指定库文件的名称,对于libevent,一般使用event_core.lib即可。在这里插入图片描述
    一般来说,完成第二步,程序的编译不会有什么问题。但是运行时,会报错,并提示找不到相关的dll,图示如下。
    在这里插入图片描述
    因为dll(动态链接库)是程序运行时加载的,而在程序的运行环境中,找不到相关dll的信息,所以报错。一般来说,可以有三种方式来处理这个问题,其实都与程序运行时,相关文件的查找顺序有关系。

Windows在查找dll时,按照如下路径查找:

  1. 包含EXE文件的目录
  2. 进程的当前工作目录
  3. Windows系统目录
  4. Windows目录
  5. 列在Path环境变量中的一系列目录

如果在这些地方都找不到需要的文件,则会出现上述错误。

相应的解决方法是:第一种,将需要的dll文件拷贝到程序的运行目录下;第二种,将dll拷贝到环境变量中存在的路径中(比如C://windows//),或者为第三方库的dll配置环境变量(我的libevent的dll文件在bin目录下);第三种,则是Visual Studio的一个调试功能,它可以设置将调试的环境设置到特定的目录,我们则可以将调试环境设置为dll文件所在目录。配置如下。
在这里插入图片描述
Visual Studio平台上最终的测试代码如下:
在这里插入图片描述
编译、链接和运行都没有问题。

因为觉得Visual Studio有时候用起来过于笨重,所以考虑在vscode上搭建环境。用的编译器是GCC。vscode中安装了一个C++的插件。
在这里插入图片描述
接下来是vscode中的一系列配置过程。

  1. 配置C/C++的环境参数(c_cpp_properties.json)
    操作步骤是:快捷键Ctrl + Shift + P,调出命令面板后,找到C/C++:Edit Configurations (UI)
    在这里插入图片描述
    需要注意的是,此处的includePath仅仅是插件搜索头文件的路径,和GCC编译器没有关系(我这么认为的)。

  2. 配置构建任务(tasks.json)
    操作步骤是:Terminal >> Configure Tasks…
    在这里插入图片描述
    需要注意的是,此处圈出来的部分即GCC编译时的-I-L、和-l参数。此处区分第一点includePath配置的内容。

  3. 调试参数(launch.json)
    操作步骤:侧边栏Run and Debug中,有一个create a launch.json file的超链。点击后,需要选择环境,选择C++ (GDB/LLDB)。然后选择配置gcc.exe
    在这里插入图片描述

  4. 前三步做完,配置基本上就完成了。然后最重要的一点,不要忘了指定dll文件的路径,即上面说的找不到dll的问题。在我的电脑上,如果没有指定dll的路径,运行程序并不会出现上面的弹窗,但是运行会出现莫名其妙的问题。

参考资料

  1. GCC Linker 在Windows下的查找依赖库的规则
  2. Visual Studio提示由于找不到dll,无法继续执行代码的问题解决
  3. 谈谈GCC的-I,-L和-l选项
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:46:13  更:2021-08-24 15:48:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 19:49:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码