VS CPP 配置

在VS上编写cpp程序时,经常出现少了xx库或者xx undefined

分为静态和动态配置方法

  1. 下载对应资源包

  2. 认识配置方法

属性面板有三个选项,

动态载入: ①对于下载的include 在”C/C++”下配置;②lib在linker下配置,具体lib文件在linker->input下配置;③dll一般放在根目录(或者32dll放在sysWOW64,64dll放在system32下)

静态载入: 前两步和之前一样,但是第三步变成在linker->proprocessor中加入对应宏

注意对应版本文件夹

常用文件解释

bin文件夹

放置二进制文件,也即可执行二进制文件

.lib文件和.dll文件

在了解”.lib”文件之前,我们得清楚几个点

①首先,程序编译和运行是两个过程

②其次,语言分两种,编译型语言和解释型语言:
a.编译型语言里程序执行一般是有编译->链接这两个过程的
b.解释型语言没有这两个过程,你可以说没有链接过程,也可以说随时都在链接

③大家看到的静态链接、动态链接实际都发生在编译阶段!

④链接简单来说就是把编译的代码里的对象符号与软件、库中的对象关联的过程

lib文件是静态链接库文件,其中存放的是函数调用的信息,在windows操作系统中起到链接程序和函数的作用。其意义在于代码重用,程序员将常用的功能写成函数,保存为lib文件,在以后编程要实现这些功能的时候,就不需要再重新编写代码,而是直接调用写好的lib文件,这很大程度上减轻程序员的负担。

dll文件是动态链接库文件,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。

对于动态链接,其在运行时,会由操作系统动态加载所需的库
动态链接和静态链接主要区别就是加载过程

静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。