You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取CMake中链接的*.lib文件的绝对路径?

确定CMake中链接的.lib文件路径及打印方法

一、这些.lib文件的来源路径

  • 你用到的d3d11.lib、dwmapi.lib、d3dcompiler.lib都是Windows SDK自带的系统库,CMake会自动从Windows SDK的标准库目录里查找。具体路径取决于你安装的Windows SDK版本,一般在类似C:\Program Files (x86)\Windows Kits\10\Lib\<SDK版本号>\um\<架构>的目录下(<架构>对应x64、x86等你当前的编译架构)。
  • 细分来看:
    • d3d11.lib和dwmapi.lib属于User Mode(UM)库,通常在上述路径的um子目录下;
    • d3dcompiler.lib多数情况也在同个UM目录,部分SDK版本可能放在shared子目录里。

二、打印这些.lib的绝对路径的方法

这里有几种实用的操作方式:

方法1:用find_library显式查找并输出路径

修改你的CMake代码,先逐个查找库并获取绝对路径,再链接,同时打印出来:

# 查找每个库的绝对路径
find_library(D3D11_LIB d3d11.lib)
find_library(DWMAPI_LIB dwmapi.lib)
find_library(D3DCOMPILER_LIB d3dcompiler.lib)

# 打印路径到控制台
message(STATUS "d3d11.lib 绝对路径: ${D3D11_LIB}")
message(STATUS "dwmapi.lib 绝对路径: ${DWMAPI_LIB}")
message(STATUS "d3dcompiler.lib 绝对路径: ${D3DCOMPILER_LIB}")

# 链接到目标可执行文件
target_link_libraries(exec PRIVATE ${D3D11_LIB} ${DWMAPI_LIB} ${D3DCOMPILER_LIB})

重新执行CMake配置时,控制台就会输出每个库的完整绝对路径。

方法2:查看CMake生成的项目文件或构建脚本

  • 如果生成的是VS项目,打开项目属性,进入链接器->输入->附加依赖项,就能看到这些库的完整绝对路径;
  • 如果用Ninja或Makefile生成器,直接查看构建目录下的build.ninja或Makefile,里面的链接命令行会包含所有链接库的绝对路径。

方法3:开启CMake的详细构建输出

  • 用Makefile生成器时,执行构建命令加上--verbose参数(比如make --verbose);
  • 用VS时,在项目属性的生成事件->常规里开启“详细生成”模式。构建过程中,控制台会打印完整的链接命令,其中就能看到这些.lib的绝对路径。

内容的提问来源于stack exchange,提问作者Planck35

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:20:29