2017-09-15 149 views
0

我想在Windows下使用CMake在QTCreator下编译项目,我在想如何将外部库及其头文件添加到我的项目中。我有我的CMakeList.txt如下CMake包括预编译库

cmake_minimum_required(VERSION 2.8) 

project(opencl_info) 
add_executable(${PROJECT_NAME} "main.cpp") 
include_directories(c:\\AMD APP SDK\\3.0\\include\\) 
target_link_libraries(opencl_info c:\\AMD APP SDK\\3.0\\lib\\x86_64\\OpenCL.lib) 

我越来越"CL\cl.h - No such file or directory"如何包括它?现在与“硬链接”?

谢谢。

在VS15我跑这个项目,它需要有:

附加包含目录” C:\ AMD APP SDK \ 3.0 \包括\

附加库目录 “c:\ AMD APP SDK \ 3.0 \ lib \ x86_64 \

“额外的解决方案”OpenCL.lib和th eproject运行。

我需要在我的路径中有OpenCL.dll

因此,我正在寻找与QTCreator/CMake相同/类似的行为来为我的项目添加标头和库(.lib, .dll)。

谢谢。

我有更多的OpenCL platfroms(NVIDIA,AMD)目前我的机器上,每使用FIND_PACKAGE(OpenCL REQUIRED)其的nVidia标识,而不是Found OpenCL: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/lib/x64/OpenCL.lib (found version "1.2")

如何告诉CMake的明确查找和使用AMD?

+0

OT:它更容易使用/而不是\\路径。 – drescherjm

+0

c:\\ AMD APP SDK \\ 3.0 \\ include \\中包含CL文件夹\\ – drescherjm

+0

此外,CMake还有一个FindOpenCL模块。对于帮助类型:'cmake --help-module FindOpenCL' – drescherjm

回答

0

部分成功,我搬到了AMD APP SDK来命名为c:\opencl\ 另一个目录这是在路径目录缩短与没有空间

我包括direcotries include_directories(c:\\opencl\\include\\)现在缺少"CL\cl.h - No such file or directory"消失的问题。

+1

请相应地编辑你的问题,答案不应该包含其他问题,所以它很可能会被低估。这就是说,只需使用双引号,以及正斜杠:'include_directories(“c:/ AMD APP SDK/3.0/include”)' – SirDarius

1

在CMake空间中有分隔符。如果你想使用字符串空格,请将其用双引号:

"c:\\AMD APP SDK\\3.0\\include\\" 
+0

谢谢,现在路径可以,但'include_directories(“c:\\ AMD APP SDK \\ 3.0 \\ include \\“) LINK_LIBRARIES(”c:\\ AMD \ APP \ SDK \\ 3.0 \\ lib \\ x86_64 \\“) target_link_libraries(opencl_info OpenCL.lib)'getting error'can not找到lOpenCL' – user3428154

+0

只是编译程序出cmake'gcc -Ic:\ opencl \ include \ main.cc:\opencl\bin\x86_64\OpenCL.dll -o main.exe' - 正常工作... – user3428154

+0

通**完全路径**到'target_link_libraries'调用库中,就像使用'gcc':'target_link_libraries(opencl_info“c:\\ AMD APP SDK \\ 3.0 \\ lib \\ x86_64 \\ OpenCL.lib”)一样' 。顺便说一句,你在你的原始代码(但没有引用)。 – Tsyvarev

0

我找到了解决方案:)

cmake_minimum_required(VERSION 2.8) 

project(opencl_info) 

include_directories("c:\\AMD APP SDK\\3.0\\include\\") 
link_directories("c:\\AMD APP SDK\\3.0\\lib\\x86_64\\") 
add_executable(${PROJECT_NAME} "main.cpp") 
target_link_libraries(opencl_info OpenCL.lib) 

感谢您的帮助,伙计们!