CodeSys通过C函数接口调用Qt

建议先查看之前的文章【CodeSys中调用C语言写的动态库】,了解如何创建一个能够被codesys调用的动态库。
假如想要在函数中使用Qt或者第三方库(比如opencv等),可以在其自动生成的makefile文件中设置好相应的参数。
在这里插入图片描述

比如我这里就是这样:

##############################################################################
#	Copyright:		Copyright CODESYS Development GmbH
#	Program:		Extension API for the Linux SL products
###############################################################################
# with this makefile you can influence the build of your component 
#
#
# Hints:
#  - the name of the *Itf.m4 file in this folder will be used as name of the shared object (and component name)
#  - all C files in this folder will be compiled by default
# # set versions of your shared object
# must be single digit, decimal
MAJORVER=0
MINORVER=1# set a component version (must match your IEC library version)
# must be 4 bytes, hexadecimal
CMPVERSION=0x01000000# set a component ID 
# must be 2 bytes >= 0x2000 and hexadecimal and can be used to differentiate different components
CMPID=0x2000# set your tools
DOS2UNIX = dos2unix
M4 = m4# set a compiler
#CC = gcc
CC = g++#INCLUDEPATH += /usr/include/opencv4
#LIBS += /usr/lib/x86_64-linux-gnu/libopencv_*.so          #添加库# add some compiler flags (with += )
#CFLAGS += -g# add some include paths (with +=)
#INCLUDES += -I.# add some linker flags (with += )
#LDFLAGS += # add some libraries that you might need (with += )
#LDLIBS += -lc# 为了能够使用opencv而做的一些设置
INCLUDES += -I/usr/include/opencv4\-I/usr/include/opencv4/opencv2
LDLIBS += /usr/lib/x86_64-linux-gnu/libopencv_*.so# 为了能够使用Qt而做的一些参数设置
INCLUDES += -I/opt/Qt/5.15.2/gcc_64/include\-I/opt/Qt/5.15.2/gcc_64/include/QtCore\-I/opt/Qt/5.15.2/gcc_64/mkspecs/linux-g++
LDLIBS += /opt/Qt/5.15.2/gcc_64/lib/*.so# include of the SDK makefiles
SDKDIR=/home/yong/Desktop/PLC/ExtensionSDK
include ${SDKDIR}/makefile

主要是做了三个修改:
1.将编译器由c改成c++
在这里插入图片描述
2.使能opencv库
在这里插入图片描述

3.使能Qt库
在这里插入图片描述
这样操作之后,在include对应的头文件后,就可以在函数中使用opencv、Qt了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/730738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024037期传足14场胜负前瞻

2024037期售止时间为3月9日(周六)20点00分,敬请留意: 本期深盘多,1.5以下赔率4场,1.5-2.0赔率5场,其他场次是平半盘、平盘。本期14场整体难度中等。以下为基础盘前瞻,大家可根据自身…

力扣刷题Days13-101对称二叉树(js)

目录 1,题目 2,代码 2.1递归思想 2.2队列--迭代思想 3,学习与总结 1,题目 给你一个二叉树的根节点 root , 检查它是否轴对称。 2,代码 2.1递归思想 return dfs(left.left, right.right) && dfs(left.right, right.l…

【力扣每日一题】力扣232用栈实现队列

题目来源 力扣232用栈实现队列 题目概述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的…

IDS入侵检测知识整理及lDS入侵检查表

【IDS入侵检测知识整理及lDS入侵检查表】 1. 网络入侵检测IDS概念 2. IDS分类 3. IDS的工作原理 4. IDS在网络中的部署 5. 入侵检查表 项目建设全套资料获取通道:软件开发全套资料_数字中台建设指南-CSDN博客

echarts中toolbox 中文乱码问题

问题描述 本地引用的echarts源文件,页面其他部分编码显示正常,唯独toolbox鼠标悬停在上面时提示信息显示乱码。 如图所示: 尝试过的方法 使用sublime text 3,notepad,记事本更改文件编码为utf-8引入时,在sc…

办公电脑换成MacBookPro半年之后……

小白是从2008年开始接触电脑的,当时朋友给我注册的第一个QQ账号是2008年4月。 从此,小白一直认为电脑全部都是Windows系统。直到上大学那年,看到了外教老师的MacBookPro…… 折腾电脑的开始居然是起源于诺基亚手机,给半智能S40的…

程序员有哪些证书值得考?

证书可以作为第三方机构对于程序员特定技能或知识掌握程度的认可,在求职市场上,一些公司尤其是大型企事业单位或者政府项目可能更看重证书作为衡量应聘者专业能力的标准之一。备考证书的过程,也可以促使程序员系统地学习和巩固相关知识&#…

力扣hot100:438.找到字符串中所有字母异位词(滑动窗口)

26个字符,我复制怎么了?26个字符我比较个数怎么了? 顶多时间复杂度*26 本题用固定窗口大小的滑动窗口每次比较包含26个元素的数组次数,最容易写。 动态窗口大小哈希表存数值(双指针差值)难想难写。 一、动态…

微服务定时执行任务

需要的注解 Configuration //1.主要用于标记配置类,兼备Component的效果。 EnableScheduling // 2.开启定时任务 Scheduled(fixedRate 3000000) 定时 30分钟 package com.czxy.conllonter;import com.baomidou.mybatisplus.core.conditions.query.QueryWrap…

基于模拟退火算法(SA)的TSP(Python实现)

本篇文章是博主在最化优学习、人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在最优化算…

计算机基础专升本笔记-汇总笔记(四)常用英文单词及缩写

计算机基础专升本笔记-汇总笔记(四)常用英文单词及缩写 一、信息技术与计算机文化 单词/缩写词含义ENIAC第一台数字电子计算机(1946)EDSAC第一台存储程序工作原理的二进制计算机PC个人计算机CAD计算机辅助设计CAM计算机辅助制造…

希腊证券交易所ATHEX计划在Sui上部署融资功能

希腊证券交易所ATHEX计划将其电子订单簿构建(Electronic Book Building ,EBB)功能部署到Sui上,他们是第一个与区块链公司合作开发此技术的证券交易所。其背后的雅典交易所集团Athens Exchange Group将与Sui的开发公司Mysten Labs合…

题目 1892: 蓝桥杯-P0102

题目描述: 用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出,十六进制表示成3位,八进制表示成4位&#xff…

一键转发朋友圈!微信快速营销推广必备法宝!

在这个“得私域者得天下”的互联网时代,如何能够在微信上进行快速、高效的营销推广成为了摆在许多人面前的一道难题。 幸运的是,随着微信管理系统的出现,一键转发朋友圈的快速营销推广法宝已经变得触手可及。 首先,微信管理系统…

音视频开发基本概念

基本概念 码率(Bitrate):码率是指单位时间内传输或处理的数据量,通常以每秒的比特数(bps)来表示。对于音频和视频,更高的码率通常意味着更高的音视频质量,但也会占用更多的带宽或存储…

QT 解决在线安装版本下载速度(以国内镜像启动安装器的方式)

关于Fiddler输入steam的教程,本人试过,无效略过… 正确方式 具体操作方法: 1.方式一、未安装过QT 下载好安装器之后,在安装器(qt-unified-windows-x64-4.6.0-online.exe)的文件夹中空白处,按…

pandas日常使用大全

第一部分 数据统计 import numpy as np import pandas as pd 1、创建DataFrame对象 生成50行5列【20,1000)之间的随机整数 datanp.random.randint(20,1000,[20,5]) indexrange(1,21) columns[中国,美国,英国,德国,法国] dfpd.DataFrame(datadata,indexindex,col…

UVA378 Intersecting Lines 题解

UVA378 Intersecting Lines 题解 怎么这么多点斜式邪教啊。 解法 在计算几何中,我们应该尽可能地避免使用浮点数的计算,尽可能地使用向量计算。 本篇题解默认读者具有向量基础。 为了方便讲解,我们将输入的四个点分别记作 A , B , C , …

React应用中的消息订阅发布模式实践:PubSub库的应用

React应用中的消息订阅发布模式实践:PubSub库的应用 随着React应用的复杂性增加,组件之间的通信变得越来越重要。而消息订阅发布(PubSub)模式提供了一种简洁而灵活的方式来实现组件间的解耦通信。在这篇博客中,我们将…

20240307-1-前端开发校招面试问题整理JavaScript

前端开发校招面试问题整理【1】——JavaScript 1、JavaScript 基础 Q:介绍 js 的基本数据类型? 基本类型(值类型):String,Number,Boolean,Null,Undefined,S…