在开发新项目时需要用到一些三方 API,这些三方 API 没有生成 lib,所以我们在 VS 编译器中添加这些三方文件夹的头文件路径后

会出现 ERROR LNK2019 的错误提示,这些提示通常都是外部文件缺少库文件导致的,以往我们只需要在链接器的选项中添加三方库的路径即可

但是在这个问题中,我们并没有 lib 文件,取而代之,需要添加对应的源文件

如下解决方法仅针对我们的项目,

在 VS 编译器中新添加现有的源文件,这里的源文件是由三方文件夹提供的(三方文件夹应该针对没有库文件的情况下,整理了几个被引用的 .cc 文件)

本地添加了这些源文件之后,重新编译项目即可发现错误消失了(此方法只能用于少量的三方头文件和源文件,如果三方文件连接紧密,则不能使用该方法)

实际当中遇到一个新问题,还未解决,就是在新添加的三方源文件中,调整头文件的路径时,会发现当前文件路径是从三方库开始的,(后续发现要在设置属性,见下图 )

我们公司的另外一个项目与之类似,他们在引用的时候,会发现该三方源文件的头文件路径是从当前项目的路径开始的,不知道他们设置了什么,,,()

更新:

最近在测试一个 api 的功能时,需要使用三方头文件和源文件,仍然是在添加三方文件的路径后,编译出现 ERROR LNK2019

我根据之前的经验添加了 .cc 文件,但是并没有用,出现了更多的链接错误

后续研究发现,在使用这些三方文件的时候需要在项目中添加一个启动文件,该启动文件里包含了很多其他头文件路径

给我的感觉就是,这个启动文件就像是一把钥匙,有了它,就可以开启三方世界,尽情引用

此方法针对没有 lib 文件的三方库(仅针对我们的项目)

项目中使用的是 fr 文件夹,里面放置了各种工具函数和谷歌的 api 使用

使用方法,先添加头文件路径

再添加启动文件,base_util.cc 和 stdafx.h(该头文件为空即可,因为三方文件需要包含它才行)

本地还要添加 tcmalloc.h,这个可以在 fr 文件夹中找到,复制过来就行

VS2019 添加三方文件夹遇到的坑的更多相关文章

  1. git add --all 为啥不能添加空文件夹,这样设计的初衷是

    git add --all 为啥不能添加空文件夹,这样设计的初衷是? 好多项目还得弄个假文件在空文件夹里面占位 这个算设计失误吧,见 https://git.wiki.kernel.org/index ...

  2. git 命令添加整个文件夹以及文件夹下的内容

    对于一个文件夹提交到服务器上,喜欢用 git add .(后面为".") 这种情况对于一个文件夹的还是很有用的,但出现了多个不同文件夹后,要分别提交就不能这么用了, 可以使用如下指 ...

  3. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  4. 【原】visual studio添加现有文件夹的方法

    由于使用版本管理器协调工作,有时同事就直接上传文件夹了,但右键添加现有项时不能添加文件夹的. 在工具栏"项目"下面有个"显示所有文件",选择这个,整个工程的文件 ...

  5. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑(很详细,还有自动动手编程探测dll)

    阅读目录 dll文件不匹配导致数据库无法启动 究竟是System32还是SysWow64 区分dll文件32位64位的程序让我倍感迷惑 再次判断究竟是System32还是SysWow64——意想不到的 ...

  6. Django 项目中添加静态文件夹

    在 mysite 文件夹下添加一个 statics 文件夹用来存放 js 文件 在 index.html 文件中添加 <!DOCTYPE html> <html lang=" ...

  7. laravel添加model文件夹,需要改动的地方

    首先,将app\User(等model文件),移入APP\modellists文件夹中,方便整理 第二,修改模型中命名空间和引用其他model的路径 第三,将文件夹app\admin中的控制器文件,全 ...

  8. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑【转发】

    原文地址:http://www.cnblogs.com/hbccdf/archive/2014/03/09/3590916.html 自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问 ...

  9. Android Studio添加assets文件夹

    Step #1:调出项目结构管理区域 View->Tool Windows->Project Step #2:结构管理区域选择“Project” Step #3:新建"asset ...

  10. 文件处理工具 gif合成工具 文件后缀批量添加工具 文件夹搜索工具 重复文件查找工具 网页图片解析下载工具等

    以下都是一些简单的免费分享的工具,技术支持群:592132877,提供定制化服务开发. Gif动图合成工具 主要功能是扫描指定的文件夹里的所有zip文件,然后提取Zip文件中的图片,并合成一张gif图 ...

随机推荐

  1. [转帖]nginx中的if和else语法

    https://www.dyxmq.cn/it/nginx/nginx-if.html nginx支持if语法,语法和平常的代码格式差不多:   1 2 3 if ($xxx = xxx) {     ...

  2. [转帖]9.2 TiFlash 架构与原理

    9.2 TiFlash 架构与原理 相比于行存,TiFlash 根据强 Schema 按列式存储结构化数据,借助 ClickHouse 的向量化计算引擎,带来读取和计算双重性能优势.相较于普通列存,T ...

  3. SPECJVM2008的简单结果

    SPECJVM2008的简单结果 摘要 前面两天学习了SPECJVM2008简单使用. 今天进行一下简单的数据采集. 需要说明一下SPECJVM2008貌似仅兼容JDK1.8 更新的LTS版本都不兼容 ...

  4. nginx 反向代理 负载均衡的做法

    项目上使用负载均衡的方法, 感觉最简单的办法其实是 http的 upstream  注意需要保留端口号信息. worker_processes 4; events { worker_connectio ...

  5. Windows 可以操纵linux内文件,与本地一致的工具

    https://github.com/allanrbo/filesremote/releases/ 感觉挺好的.

  6. Springboot数据库连接池的学习与了解

    背景 昨天学习总结了tomcat的http连接池和线程池相关的知识,总结的不是很完整, 自己知道的也比较少,总结的时候就在想tomcat针对client 端有连接池,并且通过NIO的机制, 以较少的t ...

  7. C/C++ 使用CRC检测磁盘文件完整性

    当软件被开发出来时,为了增加软件的安全性,防止被破解,通常情况下都会对自身内存或磁盘文件进行完整性检查,以防止解密者修改程序,我们可以将exe与dll文件同时做校验,来达到相互认证的目的,解密者想要破 ...

  8. Flask 框架:实现简单API测试接口

    通过使用Python中Flask框架实现一个简单的API接口程序,用户可发送JSON格式的请求,服务器响应请求,并以JSON格式将数据返回给用户,此处代码是一个模板可以测试接口时使用. Flask代码 ...

  9. C++ Boost库 实现命令行解析

    Boost库中默认自带了一个功能强大的命令行参数解析器,以往我都是自己实现参数解析的,今天偶尔发现这个好东西,就来总结一下参数解析的基本用法,该库需要引入program_options.hpp头文件, ...

  10. iOS安装包瘦身总结

    前段时间APP要做资源压缩,需要把项目中使用的所有图片资源进行压缩,以减小APP安装包体积.想着既然压缩APP资源是为了缩小APP体积,那么来一遍APP整体瘦身流程并做一下总结吧. 整个过程分三步: ...