首页 > 其他分享 >《VS篇》解决方案的属性页

《VS篇》解决方案的属性页

时间:2023-08-17 11:45:31浏览次数:47  
标签:lib 静态 解决方案 附加 VS 动态 目录 属性

属性页常用配置介绍

参考链接:https://blog.csdn.net/weixin_44084447/article/details/122950875

一、头文件与导入库

VC++目录:
包含目录——寻找#include<xxxx.h>中的xxxx.h的搜索目录;
库目录——寻找.lib文件的搜索目录;

image

C/C++常规:
附加包含目录——寻找#include<xxxx.h>中的xxxx.h的搜索目录

image

链接器:
常规-附加库目录——寻找.lib文件的搜索目录

image

链接器:
输入-附加依赖项:lib库名称

image

提示:
1、包含目录和附加包含目录的区别:
包含目录:修改了系统的include宏的值,是全局的;
附加包含目录:用于当前项目,对其他项目没有影响。
因此,当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的。
(库目录和附加库目录的区别同上)
2、如何添加静态库.lib和动态库.dll
(1)要使用一个.lib静态库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
附加包含目录—添加工程的头文件目录:
项目->属性->配置属性->C/C+±>常规->附加包含目录:加上头文件的存放目录;
附加库目录—添加文件引用的lib静态库路径:
项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
附加依赖项—添加工程引用的lib文件名:
项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。
(2)而要使用一个.dll动态链接库时,直接将需要添加的.dll文件放到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)。
3、静态库与动态库的区别
库(Library)就是一段编译好的二进制代码,加上头文件就可以供别人使用。
什么时候会用到库呢?
一种情况是某些代码需要给别人使用,但是我们不希望别人看到源码,就需要以库的形式进行封装,只暴露出头文件。另外一种情况是,对于某些不会进行大的改动的代码,我们想减少编译的时间,就可以把它打包成库,因为库是已经编译好的二进制了,编译的时候只需要 Link 链接一下,不会浪费编译时间。
上面提到库在使用的时候需要 Link,Link 的方式有两种,静态和动态,于是便产生了静态库和动态库。
静态库:
静态库即静态链接库(Windows 下的 .lib,Linux 和 Mac 下的 .a)。之所以叫做静态,是因为静态库在编译的时候会被直接拷贝一份,复制到目标程序里。静态库的好处是目标程序没有外部依赖,直接就可以运行。其缺点是会使用目标程序的体积增大。
动态库:
动态库即动态链接库(Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib)。动态库在编译时并不会被拷贝到目标程序中,目标程序中只会存储指向动态库的引用。等到程序运行时,动态库才会被真正加载进来。动态库的优点是,不需要拷贝到目标程序中,不会影响目标程序的体积,而且同一份库可以被多个程序使用(因此动态库也被称作共享库)。同时,编译时才载入的特性,也可以让我们随时对库进行替换,而不需要重新编译代码。动态库带来的问题主要是,会使得程序依赖于外部环境。如果环境缺少动态库或者库的版本不正确,就会导致程序无法运行。
image

二、输出配置

配置属性-常规——主要关注输出目录(OutDir)、目标文件名(TargetName)、配置类型(生成的目标文件类型,可选择.exe/.dll/.lib)
image

链接器-输出文件——可重写连接器创建的程序的默认名称和位置
image

链接器-高级-导入库——.lib文件生成的地方(可以理解为导出库)

image

标签:lib,静态,解决方案,附加,VS,动态,目录,属性
From: https://www.cnblogs.com/fusio/p/17637188.html

相关文章

  • 《VS篇》显示行号vs2013
    参考链接:https://www.onlinedown.net/article/10016036.htm很多新手伙伴对VS2013软件还不熟悉,为此,本节就介绍了关于VS2013显示行号的教程内容,还不了解的朋友就跟着小编学习一下吧,希望对你们有所帮助。打开VS013,随便选择一个项目打开,可以看到代码框内并没有显示行号选择“工具......
  • jvs-logic(逻辑引擎)的产生背景和使用场景作用
    逻辑引擎的由来要了解逻辑引擎的产生背景,我们需要了解程序执行的基本原理,那么编译是少不了的,编译是将高级语言翻译成为机器可以执行的机器语言。我们在做日常开发过程中,把通用的业务逻辑通过高级语言写出来后,需要把代码编译为可执行的程序,并发布出来,然后普通用户才能使用。当业务......
  • 《VS篇》Debug和Release的区别
    Debug和Release的区别参考链接:http://c.biancheng.net/view/4124.htmlRelease版本是不支持调试的,只有Debug版本才支持调试。Debug版本Debug是“调试”的意思,Debug版本就是为调试而生的,编译器在生成Debug版本的程序时会加入调试辅助信息,并且很少会进行优化,程序还是“原......
  • (Java实体类比表字段多处理方案)注解忽略实体类属性
    背景实体类多添加了几个字段用于查询,如果项目中使用了mybatis或mybatisplus会导致找不到表中字段的错误Causedby:java.sql.SQLSyntaxErrorException:Unknowncolumn'create_start_time'in'fieldlist'解决项目中使用mybatisimportorg.springframework.data.annotat......
  • 谷歌扩展相关问题及解决方案
    1、谷歌扩展的background:浏览器扩展页面分为background和popup,具体就不多解释啦其中background部分是常驻浏览器的,在manifest.json配置中可以配置多个js,但是只能配置一个html,且是二选一不能两个都配置的。但是往往需求是多变的,那么如果需要多个html在background,两种方案:1、在......
  • VS(Visual Studio)通过ssh连接虚拟机中的Linux系统远程开发
    VS通过ssh连接Linux首先VS下载Linux开发工具包,然后创建Linux环境开发项目工程,并在工具-->选项-->跨平台中通过ssh远程连接Linux系统。Linux下ssh配置(1)下载SSHsudoapt-getinstallopenssh-server(2)设置SSH开机自启动systemctlenablessh.service(3)开启SSHsudoservice......
  • vscode git突然失效问题解决
    一:首先配置‘环境变量’打开电脑‘设置’----->关于--->高级系统设置---->环境变量------>用户和系统变量都设置一下,点击Path------->新建-------->将git-bash的应用程序地址粘贴到里面----->一直点击确定,直到退出(这里的应用程序地址看自己保存的bash.exe的位置)我的是:C:\Program......
  • 命令提示符窗口创建VScode
    1、选中文件夹地址栏输入cmd,点击Enter(回车键)进入命令提示符窗口。 2、输入VScode的创建命令vuecreate项目名称,回车。3、进入vue图形化界面,选中手动选择功能,回车。4、手动选择需求Babel:vue项目中普遍使用es6语法,当项目需要兼容低版本时就需要引入babel插件TypeScri......
  • 关于部分地区EDGE浏览器首页或者“新建标签页”无法打开、一直转圈或空白页的解决方案
    假期回家期间遇到一件事情,家里使用的是ikuai软路由,接入了山东移动+山东广电双线路,最近几天EDGE浏览器启动时一直不太顺畅,具体表现为浏览器启动时一直转圈,且首页变成空白页,点击“新建标签页”也会出现此现象。此外,微软的MSN(www.msn.cn)也无法正常访问。我突然冒出一个想法,会不会是......
  • vscode配置
    网上教程的整合,亲测可用,包括给别人分享使用也成功了。按照教程没解决的,特别是基本环境的配置,没成功就是自己没有仔细看。本人在大一刚入学时尝试过很多次,均已失败告终,然而一年过去了,在网上找的资料没有变,这次却成功了。基本环境的配置:即可运行C++[......