OpenCL学习笔记(三)手动编译开发库(win10+mingw64)

2023-12-09 14:36

本文主要是介绍OpenCL学习笔记(三)手动编译开发库(win10+mingw64),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

有的小伙伴仍然在使用mingw编译器,这时只能重新编译opencl的sdk库。本文档简单记录下win10下,使用mingw11.20编译的过程,有需要的小伙伴可以参考下

一、安装所需软件

1.安装git,教程比较多,不再重复

2.安装cmake,教程比较多,不再重复

3.安装mingw编译器

笔者偷懒了,直接使用Qt安装时,下载的编译器

二、获取源码

项目地址:GitHub - KhronosGroup/OpenCL-SDK: OpenCL SDK

可以直接使用git命令拉取:

git clone --recursive https://github.com/KhronosGroup/OpenCL-SDK.git或者git clone https://github.com/KhronosGroup/OpenCL-SDK.git
cd OpenCL-SDK
git submodule init
git submodule update

 下载过程可能比较长,需要下载几个子模块

若中间失败了,需要继续执行更新

 注:建议使用科学的上网方式,否则可能下载比较慢

三、设置环境变量

环境变量设置方法很多,可以直接设置系统的环境变量,笔者使用的是在一个cmd窗口中临时设置环境变量

执行如下命令

set path=D:\Qt\Tools\mingw1120_64\bin;D:\Program Files\Git\usr\bin;%path%

若是查看环境变量执行如下

echo %path%
然后在终端中,直接运行D:\Qt\Tools\CMake_64\bin\cmake-gui.exe

四、编译源码

使用cmake设置,点击Configure按钮

第一次设置时,需要下载缺少的其他工程源码,过程可能比较长

设置参数根据需求,修改下。笔者使用默认参数设置时,要报错,就在cmake中取消了glew的动态库选项

再重新设置,就可以正常编译了,

笔者建议修改下安装位置,到自定义目录中,以免与其他opencl的库文件冲突

可能需要多次点击configure按钮,全部成功后,点击Generate按钮,生成项目文件

终端里,切换到项目文件目录,执行如下命令

mingw32-make

若编译成功 ,再执行如下命令,安装到指定目录中

mingw32-make install

已经编译好的库,可以直接下载使用 

后记

编译生成了的库,相关比msvc编译器少了很多,但必要的C++绑定相关,基本都在

这篇关于OpenCL学习笔记(三)手动编译开发库(win10+mingw64)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/474057

相关文章

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件