使用cmake查找和链接Psapi库到可执行文件的问题



我正试图用cmake将psapi库链接到一个项目,没有什么复杂的。这是我的cmake文件:

cmake_minimum_required(VERSION 2.8)
project(BenchmarkTests)
add_definitions(-DPSAPI_VERSION=1)
if (WIN32)
    FILE(GLOB win32_head
        Timer.h
        win_Memory.h
        win_Processor.h
        BenchmarkTests.h)
    FILE(GLOB win32_source *.cpp)
    SET(win32_test ${win32_head} ${win32_source})
    SET(LIBDIR_NAME "C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64/")
    SET(LIBDIR $ENV{${LIBDIR_NAME}})
    SET(LIBNAME "Psapi.Lib")
    find_library (Psapi ${LIBNAME} {LIBDIR})
    ADD_EXECUTABLE(bmTests ${win32_test})
    TARGET_LINK_LIBRARIES(bmTests Psapi)
    SOURCE_GROUP("win32" FILES ${win32_test})
endif() 

除了"…/um/x86"之外,我的计算机上没有其他"Psapi.Lib"文件,但我的系统是64位的,所以我想要x64,不是吗?无论如何,Psapi字段的CMake GUI中的输出是"Psapi NOTFOUND",而在VS2013中,Psapi.h中的所有函数都会收到语法错误。我想是因为他们无法链接到图书馆。我是不是忘记了我的cmake文件中的一些重要内容?欢迎任何建议的修复或替代方法,提前感谢。

当我尝试以下而不是find_library(…)时,我得到了相同的结果

add_library(Psapi STATIC IMPORTED)
set_property(TARGET Psapi PROPERTY IMPORTED_LOCATION "C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64/Psapi.Lib")

为了将来的参考,我让它在CMake工作如下,Chibueze Opata在这个问题上值得称赞:

find_library (PSAPI Psapi)

add_executable(...)

target_link_libraries(Basic -lpsapi)

相关内容

  • 没有找到相关文章

最新更新