首页 > 解决方案 > 为什么 cmake 不能使用 find_library 命令从 windows sdk 中找到库?

问题描述

我正在尝试让 cmake 从 windows sdk 中查找库。问题是尽管路径似乎没问题,但 cmake 找不到它们。我已尝试在自定义位置复制所需的库以查看这是否是问题但结果没有改变给我问题的代码如下

set("target" "imgcvt")
list(APPEND "${target}__library_directories"
   "C:/Program Files (x86)/Windows Kits/10/Lib/10.0.18362.0/ucrt/x64/"
   "C:/Program Files (x86)/Windows Kits/10/Lib/10.0.18362.0/um/x64/"
   "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/lib/x64/"
   "D:/libraries/windows_sdk/x86")
message("THE INCLUDE PATH IS:  ${${target}__library_directories}")
find_library("library__Ole32.lib__for_${target}" "Ole32.lib" PATHS "${${target}__library_directories}")
find_library("library__OleAut32.lib__for_${target}" "OleAut32.lib" PATHS "${${target}__library_directories}")
find_library("library__FontSub.lib__for_${target}" "FontSub.lib" PATHS "${${target}__library_directories}")
find_library("library__User32.lib__for_${target}" "User32.lib" PATHS "${${target}__library_directories}")
find_library("library__Usp10.lib__for_${target}" "Usp10.lib" PATHS "${${target}__library_directories}")
find_library("library__Gdi32.lib__for_${target}" "Gdi32.lib" PATHS "${${target}__library_directories}")
find_library("library__OpenGL32.lib__for_${target}" "OpenGL32.lib" PATHS "${${target}__library_directories}")
find_library("library__Advapi32.lib__for_${target}" "Advapi32.lib" PATHS "${${target}__library_directories}")

 message("THE LIBRAY PATH Advapi32 FOR IS:  ${library__Advapi32.lib__for_${target}}")

自定义文件夹位于“D:/libraries/windows_sdk/x86”中

现在这些消息用于调试目的。我努力了

  1. 无论有没有位于 D: 中的文件夹,但 Advapi32 的问题仍然存在。
  2. 在自定义位置也使用了包含各自库的 x86 和 x64 文件夹。
  3. 我试过 Advapi32.lib 有和没有.lib。
  4. 我已将其重命名为 sdk AdvAPI32.Lib 中的内容,但消息仍然相同

调试消息是

THE INCLUDE PATH IS:  C:/Program Files (x86)/Windows Kits/10/Lib/10.0.18362.0/ucrt/x64/;C:/Program Files (x86)/Windows Kits/10/Lib/10.0.18362.0/um/x64/;C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/lib/x64/;D:/libraries/windows_sdk/x86;D:/libraries/windows_sdk/x64
THE LIBRAY PATH Advapi32 FOR IS:  library__Advapi32.lib__for_imgcvt-NOTFOUND 
 

我的开发环境是:

  1. VSCode
  2. VSCode Cmake 插件
  3. 使用 clang 12 编译器

非常感谢任何帮助。

谢谢你。

标签: cmake

解决方案


推荐阅读