visual studio中Debug和Release以及x86、x64的区别
- Debug通常称为调试版本,包含调试信息,不做任何优化;
- Release称为发布版本,往往进行了各种优化,使得程序在代码大小和运行速度上都是最优的,Release打包出来的程序文件也相对会小一些。
- x86平台和x64平台编译得到的可执行文件和dll库都不同,Any CPU取决于当前操作系统的位数。
头文件包含路径、库文件路径
- 头文件包含路径:即为包含目录或者是附加包含目录
- 库文件路径:即所谓的库目录或者是附加库目录
包含目录VS附加包含目录
它们的不同之处在于编译器寻找头文件的的顺序不同。
- MSVC编译器寻找头文件的顺序:
- 1、源文件代码所在的文件中寻找头文件
- 2、在使用MSVC编译的时候,通过参数/l来指定搜索的目录:(相当于附加包含目录设置的路径)
- 3、 通过INCLUDE环境变量指定的搜索目录;(相当于包含目录设置的路径)
waring
其中第二个顺序中的 /I 是由 C/C++ -> 常规-> 附加包含目录 来设置的。
而第三个顺序中的 INCLUDE 环境变量 是由 VC++目录 -> 包含目录 来设置的。
库目录VS附加库目录
- MSVC编译器寻找库文件(主要指静态库,因为在编译时只需要静态库,动态库是在运行时才需的)的顺序:
- 1、源文件代码所在的文件夹中寻找库文件(即静态库文件);
- 2、在使用MSVC编译的时候,通过参数 /link 来指定的搜索目录;(相当于是“附加库目录”设置的)
- 3、通过 LIB 环境变量指定的搜索目录;(相当于是“库目录”设置的)
waring
其中第二个顺序中的 /link 是由 链接器 -> 常规-> 附加包含目录 来设置的。
而第三个顺序中的 LIB 环境变量 是由 VC++目录 -> 包含目录 来设置的
附加链接库(附加依赖库)
附加链接库的指定,即显式的知名在库目录中显式指定链接到哪一个静态库文件,直接将静态库文件名添加进去