我正在尝试使用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")
答案 0 :(得分:0)
为便于将来参考,我将其按如下方式在CMake中使用,在this问题上归功于Chibueze Opata:
find_library (PSAPI Psapi)
...
add_executable(...)
...
target_link_libraries(Basic -lpsapi)