如何将/lib下所有子文件夹添加到Visual Studio 2019的附加库目录
解决方案
1. Visual Studio IDE原生配置(最简单)
VS2013及以上版本的MSVC链接器已支持递归目录通配符,直接按以下步骤配置即可:
- 打开项目属性页,依次进入「配置属性」→「链接器」→「常规」→「附加库目录」
- 点击下拉框选择「编辑」,在输入框中直接填入
/lib/** - 保存配置后重新生成项目,链接器会自动递归搜索
/lib下的所有子文件夹查找lib文件。
注意:如果存在多个子目录下有同名lib的情况,递归搜索会优先匹配遍历顺序靠前的目录下的文件,建议提前排查避免冲突。
如果使用的VS版本过低不支持**通配符,可以用命令批量导出子目录列表后导入:
- 打开命令提示符进入
/lib目录,执行命令:dir /ad /s /b > lib_dirs.txt - 打开生成的
lib_dirs.txt,将所有路径批量复制粘贴到附加库目录的输入框即可。
2. CMake项目配置
如果你用CMake管理项目,在CMakeLists.txt中添加以下代码即可自动遍历添加所有子目录:
# 递归获取/lib下所有子目录 file(GLOB_RECURSE LIB_SUB_DIRS LIST_DIRECTORIES true "/lib/*") foreach(DIR ${LIB_SUB_DIRS}) if(IS_DIRECTORY ${DIR}) link_directories(${DIR}) endif() endforeach()
3. 长期优化方案
如果这些lib是你自己的项目生成的,建议修改各子模块的编译输出配置,将所有生成的lib文件统一输出到同一个根目录(比如/lib/output),仅需添加这一个目录到附加库目录即可,既不用依赖递归搜索逻辑,也能完全避免重名lib冲突的问题。
内容的提问来源于stack exchange,提问作者Taitai
相关产品推荐
相关产品推荐

