如何在Visual Studio新C++项目中调用之前配置过的库?
本文介绍在Visual Studio软件中调用C++各种配置、编译完毕的第三方库的方法。
在撰写C++代码时,如果需要用到他人撰写的第三方库(例如地理数据处理库GDAL、矩阵运算库Armadillo等),并不能像Python等语言那样,安装好库后直接在不同代码文件中使用;而是需要每一次新建一个代码文件(在Visual Studio软件中就是新建一个项目)后,还需要额外配置一下才可以使用。
本文就以之前的文章Visual Studio部署C++矩阵库Armadillo的方法中介绍的矩阵运算库Armadillo为例,介绍安装完某一个第三方库后,如何在Visual Studio软件新的项目中调用这个库。
首先,按照文章Visual Studio部署C++矩阵库Armadillo的方法中提到的方法,我们配置、编译好这个矩阵运算库Armadillo。随后,在我们配置这一库时所创立的项目中,是可以在源文件中调用该库的;如下图所示,我们在这一个项目的源文件中输入一段调用该库的代码,其在引入<armadillo>时是不会报错的,且代码也可以正常运行。

但是,在实际使用过程中,我们往往需要在很多其他的项目中调用刚刚配置好的Armadillo库;如下图所示,我们在电脑的另一个位置新建一个项目,假设这个项目也需要使用Armadillo库。

随后,在刚刚新建立的项目中输入调用Armadillo库的代码,可以看到其在引入<armadillo>时就已经报错。

且代码亦无法正常运行。

这就需要我们在每一个调用Armadillo库的新的项目开始运行前,进行如下的设置。
首先,在Visual Studio软件左侧的内容列表中选中项目名称(即下图的Testlib),并选择“属性”按钮;随后,在弹出的窗口中依次选择“C/C++”→“常规”→“附加包含目录”→“编辑”。

接下来,选择我们配置Armadillo库时得到的include文件夹。

完成后,会出现如下图所示的情况。

接下来,在“链接器”选项中,选择“附加库目录”。

依据同样的方法,将我们配置Armadillo库时得到的lib_win64文件夹导入其中。这里需要注意,不同的第三方库在进行这一步时所选的文件夹名称可能不一致,但一般这里选择带有lib字样的文件夹就可以。

导入后,如下图所示。

最后,再在“链接器”→“输入”中选择“附加依赖项”。

并将我们配置Armadillo库时得到的lib文件(对于Armadillo库而言,这里就是libopenblas.lib文件)的路径与其文件名称输入其中;我们可以在按下Shift按钮的同时右键选中对应lib文件,即可出现“复制文件地址”的选项。

将复制好的文件地址粘贴至“附加依赖项”中即可,如下图所示。

此时,可以看到刚刚新建立的项目中,其在引入<armadillo>时就已经不再报错。

同时,代码也可以正常运行。

至此,大功告成。
如何在Visual Studio新C++项目中调用之前配置过的库?的更多相关文章
- 在Visual Studio开发的项目中引用GAC中的dll
Open the windows Run dialog (Windows Key + r) Type C:\Windows\assembly\gac_msil. This is some sort o ...
- Visual studio加载项目时报错 尚未配置为Web项目XXXX指定的本地IIS,需要配置虚拟目录。解决办法。
在SVN上下载工程项目.使用visual studio打开时,出现如下提示: 查找相关资料,解决办法如下: 使用记事本打开工程目录下的.csproj文件.把<UseIIS>False< ...
- 【转】【UML】使用Visual Studio 2010 Team System中的架构师工具(设计与建模)
Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级 ...
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
- [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...
- 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序
如何在Visual Studio 2017中使用C# 7+语法 前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...
- [译]如何在visual studio中调试Javascript
本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...
- 如何在Visual Studio中选择C++和C#的编译器版本
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何在Visual Studio中选择C++和C#的编译器版本.
- 如何在"Visual Studio Code"中使用" Git" 进行版本控制
如何在"Visual Studio Code"中使用" Git" 进行版本控制 本来认为此类教程,肯定是满网飞了.今天首次使用VS Code的Git功能,翻遍了 ...
- Visual Studio下Qt编程中对中文的处理
Visual Studio下Qt编程中对中文的处理 本文为原创文章,原文地址http://www.cnblogs.com/c4isr/p/qt_develop_in_vs.html Visual St ...
随机推荐
- modint 板子
自动对 int 取模 // modint template<int MOD> struct Fp { ll val; constexpr Fp(ll v = 0) noexcept : v ...
- centos7.9 安装oracle11g
安装环境: 操作系统:CentOS Linux release 7.9.2009 (Core)orcle安装包:linux.x64_11gR2_database_1of2.zip. linux.x64 ...
- HTTP 及 http 请求解析过程
本文为博主原创,未经允许不得转载: HTTP 全称为:超文本传输协议(HyperText Transfer Protocol,HTTP),一种无状态的,以请求/应答方式运行的协议, 它使用可扩展的语义 ...
- 【C++】static 静态成员
静态成员 静态成员包括静态数据成员和静态成员函数,提供了同类对象间数据成员的共享机制 静态成员不是某个对象的成员,是类所有对象的共享成员,只建立一个成员副本 静态成员的定义与引用 定义格式:stati ...
- [转帖]六千字带你了解 Oracle 统计信息和执行计划
https://cloud.tencent.com/developer/article/1616706 大家好,我是 JiekuXu,很高兴又和大家见面了,今天分享下 Oracle 统计信息和执行计划 ...
- [转帖]清除掉shared pool中某条sql语句方法
https://www.xifenfei.com/2012/02/%E6%B8%85%E9%99%A4%E6%8E%89shared-pool%E4%B8%AD%E6%9F%90%E6%9D%A1sq ...
- Springboot开发的应用为什么这么占用内存
Springboot开发的应用为什么这么占用内存 Java的原罪 Java 程序员比 c或者是c++程序员相比轻松了很多. 不要管理繁杂的内存申请与释放,也不用担心因为忘记释放内存导致很严重的内存泄漏 ...
- blackbox的简单学习-监控web服务是否正常以及证书过期时间
blackbox的简单学习-监控web服务是否正常以及证书过期时间 下载blackbox https://github.com/prometheus/blackbox_exporter 可以在rele ...
- [转帖]学习如何编写 Shell 脚本(进阶篇)
https://juejin.cn/post/6935365727205457928 前言 在<学习如何编写 Shell 脚本(基础篇)>一文中已经讲解了 Shell 脚本编程的基础知识, ...
- [转帖]如何通过dba_hist_active_sess_history分析数据库历史性能问题
https://www.cnblogs.com/DataArt/p/10018932.html 在数据库运行的过程中,我们有时会碰到数据库hung住的问题,在这个时候很多人会选择尽快让它恢复正常而不是 ...