可移植的配置visual studio工程第三方库
现在编程有太多的好用的第三方库,例如
使用这些库给我们带来了极大的便利,同时也有很多困扰。这个工程在我电脑上明明很好用的,但是为什么在你电脑上就没法编译呢?
这是工程配置的不好造成的。很多人在配置工程引用文件的时候使用绝对地址,例如配置opencv的include文件,配置地址为C:\opencv\build\include\opencv。但是在另一个电脑上,opencv可能不在这个地址,这时候vs就无法找到相应的头文件,所以会造成编译失败。
那么怎么解决呢?
第一种解决方法就是vs提供的nuget来对引用的库进行管理。类似*unix系统里的包管理,他会管理项目所需要的库文件,以及其依赖项。
这里以opencv为例子讲解。选择工具->NuGet程序包管理器->管理解决方案的NuGet程序包。
这里可以看到我使用了四个程序包,在你的解决方案里应该是没有程序包的。点击联机,去搜索需要的程序包。
这里我在右上角输入了opencv进行搜索,可以看到搜索出了许多关于opencv的程序包。选择你需要的程序包。由于我已经安装过了,所以可以看到一个对勾。如果你没有安装,就如我选择的opencvsharp3,点击安装。
之后会自动下载,并安装,然后让你选择你需要使用程序包的工程。就完成了。
之后在解决方案上右键,选择Enanble NuGet Package Restore,就可以启用NuGet程序包。然后就可以在项目里使用opencv了。而且拷贝到其他电脑上也只需要恢复一下就可以使用。
方法二:
但是方法一需要有人在nuget上维护你需要的库,如果没有的话就没办法。拿我的在做的项目来说,opencv的库是有的,但是相机的库就没有。那么还是需要自己手动管理库文件,但是稍微修改以下配置方法。就是把需要的第三方库放在解决方案文件夹里,然后使用相对路径的方式进行引用。
对于包含目录(include),原来的配置方式和相对路径配置方式对比如下。这里,相对路径是相对于工程文件(*.vcxproj)所在的目录。两个点(..)表示当前目录的上一个目录,这里的意思就是在工程文件上一个目录里的那一堆路径下。这样配置完之后就可以在不同的电脑上使用了。
对于用于链接的库文件(*.lib)也是同样的道理,然后在将需要使用的.lib文件添加到链接器->输入->附加依赖项。
通过上面两个配置,将解决方案需要用到的库文件都配置完成,并且可以在不同的电脑上进行编译。
可能遇到的错误:
1.NuGet Error:Unable to find version '2.4.11' of package 'OpenCV.overlay-x64_v120_Release'.
进入命令行的NuGet 包管理器控制台,然后手动安装这个包。
Install-Package OpenCV.overlay-Win32_v140 -Version 2.4.
解决方法来源:https://libraries.io/nuget/OpenCV.overlay-Win32_v140_Debug
只是在这里,他安装的指明了debug版本,我试了不好用个,就删掉了
2.NuGet Error:未知命令:“overlay”
删除解决方案下的.nuget文件夹,重新生成解决方案。
解决方案来源:https://blog.csdn.net/u011185952/article/details/52577620
可移植的配置visual studio工程第三方库的更多相关文章
- Cocos开发中Visual Studio下libcurl库开发环境设置
我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...
- android studio 导入第三方库的记录
android studio 导入第三方库的记录.jar包 和 库 一.jar包 1.jar包的话很简单,首先换成project模式,将你要用的jar包复制到lib下面.如图 2.然后右键选择Add ...
- Android Studio导入第三方库的三种方法
叨叨在前 今天在项目中使用一个图片选择器的第三方框架——GalleryFinal,想要导入源码,以便于修改,于是上完查找了一下方法,想到之前用到过其他导入第三方库的方法,现在做个小总结,以防忘记. A ...
- Visual Studio 开发(一):安装配置Visual Studio Code
一.为何使用Visual Studio Code 在学习音视频开发的时候,使用到了C和C++,在回顾复习C和C++的知识的时候,需要编写一些代码来加强理解. 虽然,有在线的语言编辑工具https:// ...
- 利用CMake和OpenCV源代码生成Visual Studio工程
OpenCV1.0版本有windows,linux之分,笔者曾经一直使用Opencv1.0.这个版本在下载,安装之后,在 \OpenCV\_make文件夹下面已经存在了一个opencv.dsw的工程文 ...
- 配置 Visual Studio Tools for Apache Cordova
原文:配置 Visual Studio Tools for Apache Cordova 1.连接地址 https://msdn.microsoft.com/zh-cn/library/vs/alm/ ...
- 各种方法配置 Visual Studio 第三方库
配置第三方库如Opencv,或者软件开发商提供的SDK时,一般需要配置三个文件: 头文件(.h),引入库(.lib)文件(也称“导入库文件”),动态链接库(.dll)文件 下面以度申科技的相机sdk配 ...
- 用CMake设置Visual Studio工程中第三方库
较大的工程文件中一般会调用动态库或者静态库,如果这些库文件是当前工程包含的项目,CMake会自动识别并添加Debug和Release编译时需要的库文件路径和文件名,可以使用命令: Target_Lin ...
- [C++] 在Visual Studio工程中管理C++第三方库
目前的项目依赖于很多第三方库,每次要再一个新的环境编译/运行,都要花很长时间先编译/安装各种第三方库,而且会出现各种问题,因此决定将所有第三方库编译好之后,放入工程的子目录中,以后就不用重复编译了. ...
随机推荐
- mac os PHP 访问MSSQL
写在前: 项目的数据库是sql server,但是自己的系统是mac os.这样导致了需要一个烦人的系统环境搭建过程.目前要在mac 上的php环境中支持mssql环境访问,经过自己了解,有两种方式: ...
- 笔记本Charge与Vcore方案
一.笔记本Vcore方案 EC管理智能电池的方案名词简介 我所知道的EC====>Battery 立錡VCORE解決方案簡介 ATX Power Supply 涡轮加速升压(turbo-boo ...
- webstorm 设置IP 访问 手机测试效果
http://www.cnblogs.com/gulei/p/5126383.html 前端开发中,经常需要将做好的页面给其他同事预览或手机测试,之前一直用的第三方本地服务器usbwebserver, ...
- Linux中进程的优先级
Linux採用两种不同的优先级范围,一种是nice值.还有一种是实时优先级. 1.nice值 nice值得范围是-20~19,默认值是0. 越大的nice值意味着更低的优先级.也就是说nice值为-2 ...
- unity3d开发的android应用中增加AD系统的详细步骤
unity3d开发的android应用中增加AD系统的详细步骤 博客分类: Unity3d unity3d Unity3d已经支持android,怎样在程序里增加admob? 试了一下,确实能够, ...
- 《学习opencv》笔记——矩阵和图像操作——cvConvertScale,cvConvertScaleAbs,cvCopy and cvCountNonZero
矩阵和图像的操作 (1)cvConvertScale函数 其结构: void cvConvertScale( //进行线性变换,将src乘scale加上shift保存到dst const CvArr* ...
- MVC3 类型 System.Web.Mvc.ModelClientValidationRule 同时存在
用文本编辑器打开 工程名称 .csproj 找到 1. <Reference Include="System.Web.WebPages" /> 2. <Refe ...
- jQuery 给div绑定单击事件
说明:这篇随笔介绍的是怎么给div添加单击(click)事件.不再废话 直接看代码 <%@ Page Language="C#" AutoEventWireup=" ...
- 面向资源操作的http请求
Guide | Echo - High performance, minimalist Go web framework https://echo.labstack.com/guide e.POST( ...
- Hadoop安全
kerberos-hadoop配置常见问题汇总 注意事项 常见问题如下(其中前面两点最多): 各目录属主组属性修改. 对于hadoop,需要改为yarn:hadoop/mapred:hdoop/hdf ...