1
我在CLion中有一个项目,我需要从Windows 8.1 SDK中包含一个库,所以我试图用CMake来链接它。
我没有任何.so或.dll,但.lib(或直接.h文件)。
具体来说,这个库是dsound.h。
我试图寻找相关的问题,但我找到的解决方案都不适合我:我该怎么做?CMake链接Windows SDK
我目前的CMakeLists.txt是
cmake_minimum_required(VERSION 3.7)
project(Project)
set(CMAKE_CXX_STANDARD 11)
include_directories(${WinSDK})
set(SOURCE_FILES main.cpp file1.h file1.cpp)
add_executable(Project ${SOURCE_FILES})
target_link_libraries(Project ${WinSDK})
其中WinSDK是包含Windows SDK的位置的变量。
我得到的错误是:
[ 33%] Building CXX object CMakeFiles/Project.dir/main.cpp.obj
[ 66%] Building CXX object CMakeFiles/Project.dir/soundclass.cpp.obj
In file included from C:\projectPath\soundclass.cpp:4:0:
C:\projectPath\soundclass.h:21:24: fatal error: dsound.h: No such file or directory
In file included from C:\projectPath\main.cpp:5:0:
C:\projectPath\soundclass.h:21:24: fatal error: dsound.h: No such file or directory
compilation terminated.
compilation terminated.
CMakeFiles\Project.dir\build.make:61: recipe for target 'CMakeFiles/Project.dir/main.cpp.obj' failed
CMakeFiles\Project.dir\build.make:85: recipe for target 'CMakeFiles/Project.dir/soundclass.cpp.obj' failed
CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/Project.dir/all' failed
mingw32-make.exe[3]: *** [CMakeFiles/Project.dir/main.cpp.obj] Error 1
mingw32-make.exe[3]: *** Waiting for unfinished jobs....
mingw32-make.exe[3]: *** [CMakeFiles/Project.dir/soundclass.cpp.obj] Error 1
mingw32-make.exe[2]: *** [CMakeFiles/Project.dir/all] Error 2
CMakeFiles\Makefile2:78: recipe for target 'CMakeFiles/Project.dir/rule' failed
Makefile:117: recipe for target 'Project' failed
mingw32-make.exe[1]: *** [CMakeFiles/Project.dir/rule] Error 2
mingw32-make.exe: *** [Project] Error 2
你在哪里初始化'WinSDK'变量?在一个较高的范围内的某处?头文件是否正好位于您存储在“WinSDK”变量中的位置? – Akira
'WinSDK'变量在CLion的Path Variables中定义;现在我改变它取决于包括和库,如@utopia建议,它的工作。 – thesmith
我的意图与我的问题是要确保您设置标题和库的确切位置或不。看起来这是你问题的根源。 – Akira