如何在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 ...
随机推荐
- S3C2440移植uboot之启动过程概述
上节烧写了uboot到开发板,不能运行.这节我们分析uboot重新编译uboot,由最后一条链接命令开始分析uboot 目录 1.分析start.S 2._start会跳转到start_code处 ...
- package.json文件中版本号
"5.0.3"表示安装指定的5.0.3版本,"-5.0.3"表示安装5.0.X中最新的版本,"^5.0.3"表示安装5.X.X中最新的版本.
- hdu 5234
题意:求在不超过k的情况下,最多可以得到多少价值. 三维dp,结合01背包,第三维就是用来保存在不同的背包容量下能得到的最大价值,也就是第三维有很多状态. #include<iostream&g ...
- (已解决)vscode python 代码高亮异常 - 引入的包不显示
问题情况:识别不了引入的包,代码一片白花花的. 解决方法:点最左下角的齿轮,打开设置,搜索 language,把 python 的 language server 改成 pylance,如下图: 如果 ...
- JVM 垃圾回收算法与垃圾回收器
本文为博主原创,未经允许不得转载: 如何确定垃圾? 引用计数法: 在 Java 中,引用和对象是有关联的.如果要操作对象则必须用引用进行.因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以 ...
- Python-函数-算术函数
#python-函数-算术函数 #(1)加减乘除 #加法 add(),减法 subtract(),乘法 multiply(),除法 divide() #作用:数组间的加减乘除 import numpy ...
- C++初始化列表时,形参和实参名可以一样,编译器可以识别
在这里初始化列表直接用age(age)即可,用this->age(age)反而会出错,C++不允许在成员初始化列表中使用this关键字来初始化类成员 class Person { public: ...
- .NET开源的简单、快速、强大的前后端分离后台权限管理系统
前言 今天分享一款前端基于Vue3,后端基于.NET8开源的免费(MIT license).简单.快速.强大的前后端分离后台权限管理系统:中台Admin(Admin.Core). 项目官方介绍 中台A ...
- Python学习之十六_virsh批量获取虚拟机IP地址的方法
Python学习之十六_virsh批量获取虚拟机IP地址的方法 Linux命令说明 for j in \ $(for i in `virsh list |grep -v Id |grep runnin ...
- [转帖]Google SRE 薪水,看看同样作为 SRE 的你相差多少
https://zhuanlan.zhihu.com/p/566098252 SRE 是确保所有生产环境(Infra/Server/DBS 等)一直正常运行的人.每个网络科技公司基本都有这个部门.但是 ...