msvc 库目录/附加库目录 包含目录/附加包含目录的区别

include

参考 https://docs.microsoft.com/en-us/cpp/build/reference/i-additional-include-directories?view=msvc-170
msvc在编译的时候按照以下顺序搜索头文件:

  1. 用双引号(#include “xxx.h”)包含的头文件,先在本地目录下搜索
  2. 如果上一步没搜到,或者用尖括号包含的头文件(#include <stdio.h>),通过 /I 指定的目录搜索
  3. 如果上一步骤没搜到,再搜索通过环境变量 INCLUDE 指定的目录

包含目录:include directories
附加包含目录:additional include directories
这两个东西都是寻找头文件的路径,只不过优先级不一样

很明显,“c/c++ -> 常规 -> 附加包含目录”的搜索优先级要高于“vc++目录 -> 包含目录”

Libpath

参考 https://docs.microsoft.com/en-us/cpp/build/reference/libpath-additional-libpath?view=msvc-170
链接器在链接的时候搜索顺序为:首先在选项 "/LIBPATH" 指定的路径中搜索,然后搜索 LIB 环境变量中指定的路径。
库目录:Libpath
附加库目录:Additional Libpath
这两个东西都是指定链接的时候搜索lib文件的路径,只不过优先级不一样

很明显,“链接器 -> 常规 -> 附加库目录”的搜索优先级要高于“vc++目录 -> 库目录”

posted @ 2022-07-07 14:00  feipeng8848  阅读(386)  评论(0编辑  收藏  举报