编译 OpenCL HelloWorld 程序:链接器错误
Compile OpenCL HelloWorld Program: Linker Error
我的参考代码来自 Aaftab Munshi 的 "OpenCL Programming Guide"。代码的源文件可以在 https://github.com/bgaster/opencl-book-samples/tree/master/src/Chapter_2/HelloWorld
找到
我正在尝试 运行 macOS Sierra,版本 10.12.6 上的代码。按照书中的说明,我 运行 在包含上面找到的源文件的文件夹中执行以下命令 GitHub link:
mkdir build
cd build
cmake ../ "CodeBlocks - Unix Makefiles"
您需要为 运行 的最后一行安装 cmake。该示例来自第 2 章,第 12 页。 41 的文本。 运行 cmake
生成一个 Code::Blocks 文件。当我尝试构建 Code::Blocks 文件时,出现以下错误:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [HelloWorld] Error 1
make[1]: *** [CMakeFiles/HelloWorld.dir/all] Error 2
make: *** [all] Error 2
有谁知道为什么会出现这个错误?这似乎是构建过程的问题,而不是 C 语法的问题。
谢谢!
为了让 cmake 查看 LuminanceHDR/opencl 分支的 mac openCL 内容,我必须执行以下操作(添加到 CMakeLists.txt):
# find OpenCL on Mac
find_package(OpenCL REQUIRED)
include_directories(SYSTEM ${OpenCL_INCLUDE_DIRS})
SET(LIBS ${LIBS} ${OPENCL_Libraries})
SET(CMAKE_EXE_LINKER_FLAGS "-framework OpenCL -rpath @loader_path/../Frameworks/")
Instruction installations 具体说,你应该构建 整个项目 (传递给 cmake
等于 top-克隆项目的一级目录).
CMakeLists.txt
,包含在每个示例中,不能单独构建。
(看,他们错过了每个 CMake 项目都需要的 cmake_minimum_required()
和 project()
调用;也错过了对 find_project(OpenCL)
的调用,这将设置变量 OPENCL_LIBRARIES
).
我的参考代码来自 Aaftab Munshi 的 "OpenCL Programming Guide"。代码的源文件可以在 https://github.com/bgaster/opencl-book-samples/tree/master/src/Chapter_2/HelloWorld
找到我正在尝试 运行 macOS Sierra,版本 10.12.6 上的代码。按照书中的说明,我 运行 在包含上面找到的源文件的文件夹中执行以下命令 GitHub link:
mkdir build
cd build
cmake ../ "CodeBlocks - Unix Makefiles"
您需要为 运行 的最后一行安装 cmake。该示例来自第 2 章,第 12 页。 41 的文本。 运行 cmake
生成一个 Code::Blocks 文件。当我尝试构建 Code::Blocks 文件时,出现以下错误:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [HelloWorld] Error 1
make[1]: *** [CMakeFiles/HelloWorld.dir/all] Error 2
make: *** [all] Error 2
有谁知道为什么会出现这个错误?这似乎是构建过程的问题,而不是 C 语法的问题。
谢谢!
为了让 cmake 查看 LuminanceHDR/opencl 分支的 mac openCL 内容,我必须执行以下操作(添加到 CMakeLists.txt):
# find OpenCL on Mac
find_package(OpenCL REQUIRED)
include_directories(SYSTEM ${OpenCL_INCLUDE_DIRS})
SET(LIBS ${LIBS} ${OPENCL_Libraries})
SET(CMAKE_EXE_LINKER_FLAGS "-framework OpenCL -rpath @loader_path/../Frameworks/")
Instruction installations 具体说,你应该构建 整个项目 (传递给 cmake
等于 top-克隆项目的一级目录).
CMakeLists.txt
,包含在每个示例中,不能单独构建。
(看,他们错过了每个 CMake 项目都需要的 cmake_minimum_required()
和 project()
调用;也错过了对 find_project(OpenCL)
的调用,这将设置变量 OPENCL_LIBRARIES
).