Windows VS C++工程:包含目录、库目录、附加依赖项、附加包含目录、附加库目录配置与静态库、动态库的调用——以OCCI的配置为例

文章目录

  • 1 包含目录(Include Directories)/ 附加包含目录(Additional Include Directories)
    • 1.1 区别和作用
    • 1.2 设置路径
  • 2 库目录(Library Directories)/ 附加库目录(Additional Library Directories)
    • 2.1 用途
    • 2.2 设置路径
  • 3 附加依赖项(Additional Dependencies)
    • 3.1 用途
    • 3.2 设置路径
  • 4 静态链接库调用方法
  • 5 动态链接库的调用方法

利用Visual Studio编写C++工程文件时,时常需要自行配置自己编写的头文件、外部引用的静态链接库和动态链接库的路径,这时候需要在项目属性中进行配置。

1 包含目录(Include Directories)/ 附加包含目录(Additional Include Directories)

#include < .h>中 .h的搜索目录。如果有XXX.h找不到,设置这个目录可以解决。

1.1 区别和作用

  1. 作用:预编译会从该目录查找头文件,可以直接#include<该目录中的头文件>.

  2. 区别:

  • 头目录搜索的优先级不同,顺序:1、源文件目录–>2、附加包含目录–>3、包含目录
  • 包含目录:修改了系统的include宏的值,是全局的;
  • 附加包含目录:用于当前项目,对其他项目没有影响。

编译器搜索头文件顺序:

  1. 如果#include使用双引号(“”)形式,它将首先搜索本地目录。现从包含#include语句的当前文件的所在目录开始搜索。若果失败,则从当前目录的父目并逐级往上搜索,直到最上层include文件所在的目录。
  2. 如果#include使用尖括号(<>)形式,或者使用双引号形式本地目录检索失败,它会按照/I选项(附加包含目录)指定的目录搜索。顺序是按照CL在命令行中遇到它们的顺序。
  3. INCLUDE环境变量指定的目录,即包含目录。

所以,对本项目自身的#include一定要用双引号,否则如果用尖括号,不会搜索本地目录,而是直接从附加包含目录开始搜索,自然就找不到本地的文件,然后报错。

1.2 设置路径

包含目录(Include Directories)

配置属性 → VC++目录 —>包含目录

D:\ProgramData\OCCI_InstantClient\instantclient_19_20\sdk\include

在这里插入图片描述在这里插入图片描述

附加包含目录(Additional Include Directories)

配置属性 → C/C++ → 常规 —>附加包含目录

2 库目录(Library Directories)/ 附加库目录(Additional Library Directories)

寻找.lib文件的搜索目录

2.1 用途

作用:指明库文件所在的目录or路径,即寻找.lib文件的搜索目录
区别:优先级不同,先检索附加库目录,再检索库目录

2.2 设置路径

库目录(Library Directories)

位于:配置属性→ VC++目录→ 库目录

D:\ProgramData\OCCI_InstantClient\instantclient_19_20\sdk\lib\msvc\vc14

在这里插入图片描述在这里插入图片描述

附加库目录(Additional Library Directories)

位于:配置属性→ 链接器→ 常规→ 附加库目录

3 附加依赖项(Additional Dependencies)

lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,.cpp,.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)

3.1 用途

作用:指明依赖库文件的名称

3.2 设置路径

位于:配置属性 → 连接器 → 输入

Debug模式下选择带_d的lib,发布的时候需要改成相应的release不带_d的

oraocci19d.lib

在这里插入图片描述

4 静态链接库调用方法

(1) 要使用一个静态库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
(2)附加包含目录、附加库目录、附加依赖项的添加方法及说明:
① 附加包含目录—添加工程的头文件目录:
项目->属性->配置属性->C/C+±>常规->附加包含目录:加上头文件的存放目录;
② 附加库目录—添加文件引用的lib静态库路径:
项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
③ 附加依赖项—添加工程引用的lib文件名:
项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。

5 动态链接库的调用方法

在这里插入图片描述

(1)包含静态链接库的操作
① 附加包含目录—添加工程的头文件目录:
项目->属性->配置属性->C/C+±>常规->附加包含目录:加上头文件的存放目录;
② 附加库目录—添加文件引用的lib静态库路径:
项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
③ 附加依赖项—添加工程引用的lib文件名:
项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。

(2)当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element ui el-table表格纵向横向滚动条去除并隐藏空白占位列

需求 当table内容列过多时&#xff0c;可通过height属性设置table高度以固定table高度、固定表头&#xff0c;使table内容可以滚动 现在需求是右侧滚动条不好看&#xff0c;需要去除滚动条&#xff0c;并隐藏滚动条所占列的位置 // ----------修改elementui表格的默认样式-…

Spring MVC的常用注解

目录 RequestMapping 例子&#xff1a; RequestMapping 支持什么类型的请求 使 RequestMapping 只支持特定的类型 RestController 通过 HTTP 请求传递参数给后端 1.传递单个参数 注意使⽤基本类型来接收参数的情况 2.传递多个参数 3.传递对象 4.RequestParam 后端参数…

配置Super-VLAN下的DHCP服务器示例

组网需求 如图1所示&#xff0c;某公司拥有两个部门&#xff0c;为了节省IP地址&#xff0c;部门A和部门B规划为同一网段&#xff1b;为了提升业务安全性&#xff0c;将不同部门的用户划分到不同VLAN中。企业管理员为了方便统一管理&#xff0c;希望部门内终端通过DHCP服务器动…

NX二次开发后处理中保存tcl变量值到文本

直接上代码&#xff1a; static bool GetTclValue(UF_MOM_id_t mom_id, char *szName, char *szInfo, std::string &stValue,bool bShowValue /* false*/) {UF_MOM_ask_string(mom_id, szName, (const char **)&szInfo);if (szInfo){stValue szInfo;if (bShowValue){…

【Spring】快速入门Spring Web MVC

文章目录 1. 什么是Spring Web MVC1.1 MVC1.2 Spring MVC 2. 使用Spring MVC2.1 项目创建2.2 建立连接2.2.1 RequestMapping 注解2.2.2 RestController 注解2.2.3 RequestMapping 使⽤2.2.4 RequestMapping 是什么请求&#xff1f;POST&#xff1f;GET&#xff1f;…&#xff1…

FL Studio21最新中文版DAW数字音频工作站

大概从去年开始&#xff0c;“电子音乐制作技术”成为越来越常见的说法。一开始我们觉得这种说法太过于笼统&#xff0c;因为电子音乐制作的技术早已不限于用在电子音乐&#xff0c;它更像是现代音乐制作技术。毕竟现代化的90%的音乐都是这么做出来的。 对&#xff0c;我们说的…

Spring概述

Spring概述 Spring 是最受欢迎的企业级 Java 应用程序开发框架&#xff0c;数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。 Spring 框架是一个开源的 Java 平台&#xff0c;它最初是由 Rod Johnson 编写的&#xff0c;并且于 2003 …

【EI会议征稿】 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)

2024年遥感、测绘与图像处理国际学术会议(RSMIP2024) 2024 International Conference on Remote Sensing, Mapping and Image Processing 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)将于2024年1月19日-21日在中国厦门举行。会议主要围绕遥感、测绘与图像处理等研究领…

Vue3-02_Vue基础入门

背景 这里&#xff0c;跟vue官网的介绍章节稍有差异。官网上侧重组件原理&#xff0c;从浅到深介绍各种组件。后续是系统生态。 教程上更偏路线化&#xff0c;需要用到的优先讲解。完成综合案例。所以我主要按照教程的思路来进行学习。 ◆ 能够知道 vue 的基本使用步骤 ◆ 掌…

threejs(4)-纹理材质高级操作

一、纹理重复_缩放_旋转_位移操作 // 导入threejs import * as THREE from "three"; // 导入轨道控制器 import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js"; // 导入lil.gui import { GUI } from "three/examples/jsm/l…

win10 + VS2017 编译libjpeg(jpeg-9b)--更新

刚刚写了一篇“win10 VS2017 编译libjpeg&#xff08;jpeg-9b&#xff09;”&#xff0c; 然后就发现&#xff0c;还有一个更好的方法。因此&#xff0c;重新更新了一篇&#xff0c;作为对比与参考。 需要用到的文件&#xff1a; jpeg-9b.zip win32.mak 下载链接链接…

当生成式AI遇到业务流程管理,大语言模型正在变革BPM

生成式AI对各领域有很大影响&#xff0c;一个方面在于它改变了很多固有业务的工作流。 工作流&#xff08;Workflow&#xff09;是业务流程的一种实现方式&#xff0c;一个业务流程往往包含多个工作流范式以及相关的数据、组织和系统。 因此&#xff0c;提及工作流必然离不开业…

13 结构性模式-装饰器模式

1 装饰器模式介绍 在软件设计中,装饰器模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态的增加职责,使用对象之间的关联关系取代类之间的继承关系. 2 装饰器模式原理 //抽象构件类 public abstract class Component{public abstract void operation(); }…

React JSX常用语法总结

React JSX语法 什么是React JSX JSX&#xff08;javascript xml&#xff09; 就是JavaScript和XML结合的一种格式&#xff0c;是JavaScript的语法扩展&#xff0c;只要把HTML代码写在JS中&#xff0c;就为JSX。用于动态构建用户界面的Javascript库&#xff0c;发送请求获取数据…

源码角度分析Java 循环中删除数据为什么会报异常

一、源码角度分析Java 循环中删除数据为什么会报异常 相信大家在之前或多或少都知道 Java 中在增强 for中删除数据会抛出&#xff1a;java.util.ConcurrentModificationException 异常&#xff0c;例如&#xff1a;如下所示程序&#xff1a; public class RmTest {public sta…

Django分页功能的使用和自定义分装

1. 在settings中进行注册 # drf配置 REST_FRAMEWORK {DEFAULT_AUTHENTICATION_CLASSES: (# rest_framework_jwt.authentication.JSONWebTokenAuthentication,rest_framework_simplejwt.authentication.JWTAuthentication,rest_framework.authentication.SessionAuthenticatio…

高等数学教材重难点题型总结(六)定积分的应用

本章全是物理题&#xff0c;总的来说计算层面并不难&#xff0c;难点主要在于&#xff1a;对于体积和面积的题&#xff0c;核心在于抽象出面积/体积元素——本质上就是被积函数&#xff1b;对于物理题&#xff0c;基础的物理的公式一定要牢记~ 1.求平面面积 2.求旋转体的体积…

爬虫批量下载科研论文(SciHub)

系列文章目录 利用 eutils 实现自动下载序列文件 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、获取文献信息二、下载文献PDF文件参考 前言 大家好✨&#xff0c;这里是bio&#x1f996;。…

初识《时间复杂度和空间复杂度》

目录 前言&#xff1a; 关于数据结构与算法 1.什么是数据结构&#xff1f; 2.什么是算法&#xff1f; 3.数据结构和算法的重要性 算法效率是什么&#xff1f; 1.怎样衡量一个算法的好坏呢&#xff1f; 2.算法的复杂度是个什么&#xff1f; 时间复杂度 1.时间复杂度的概…

微服务技术导学

文章目录 微服务结构认识微服务技术栈 微服务结构 技术&#xff1a; 解决异常定位&#xff1a; 持续集成&#xff0c;解决自动化的部署&#xff1a; 总结如下&#xff1a; 认识微服务 微服务演变&#xff1a; 技术栈 SpringCloud与SpringBoot版本对应关系