C++ 查找带有Cmake和/或qmake的Microsoft SDK(psapi.lib)

C++ 查找带有Cmake和/或qmake的Microsoft SDK(psapi.lib),c++,cmake,qmake,C++,Cmake,Qmake,我有一个使用Qt4.6和MicrosoftSDK(Psapi.Lib)的应用程序 我使用cmake或qmake来构建 对于qmake和cmake,我在硬文件中指定Psapi.lib的路径 qmake: win32 { LIBS += "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\Psapi.Lib" } unix { CONFIG += link_pkgconfig PKGCONFIG += xmu } cmak

我有一个使用Qt4.6和MicrosoftSDK(Psapi.Lib)的应用程序

我使用cmake或qmake来构建

对于qmake和cmake,我在硬文件中指定Psapi.lib的路径

qmake:

win32 {
    LIBS += "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\Psapi.Lib"
}
unix {
    CONFIG += link_pkgconfig
    PKGCONFIG += xmu
}
cmake:

SET(PSAPI "C:/Program Files/Microsoft SDKs/Windows/v7.0A/Lib/Psapi.Lib")
IF(UNIX)
  INCLUDE(FindPkgConfig)
  PKG_CHECK_MODULES(XMU xmu REQUIRED)
  INCLUDE_DIRECTORIES(${XMU_INCLUDE_DIR})
  LINK_DIRECTORIES(${XMU_LIBRARY_DIRS})
ENDIF()
但是我想避免这条艰难的道路,有没有办法搜索SDK库

对于linux,搜索没有问题:

qmake:

win32 {
    LIBS += "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\Psapi.Lib"
}
unix {
    CONFIG += link_pkgconfig
    PKGCONFIG += xmu
}
cmake:

SET(PSAPI "C:/Program Files/Microsoft SDKs/Windows/v7.0A/Lib/Psapi.Lib")
IF(UNIX)
  INCLUDE(FindPkgConfig)
  PKG_CHECK_MODULES(XMU xmu REQUIRED)
  INCLUDE_DIRECTORIES(${XMU_INCLUDE_DIR})
  LINK_DIRECTORIES(${XMU_LIBRARY_DIRS})
ENDIF()
有可能做同样的事情吗?
谢谢。

请参阅CMake中的find_library命令。

我在Windows 7上成功地找到了Psapi.Lib,如下所示:

find_library (PSAPI Psapi)
但是我很难找到合适的架构。它始终可以找到x32版本:

find_library (PSAPI Psapi PATH_SUFFIXES "x64")
message (STATUS "PSAPI: ${PSAPI}")
> -- PSAPI: C:/Program Files (x86)/Windows Kits/8.0/Lib/win8/um/x86/Psapi.Lib
:(