clion qt导出dll给别的项目用

news/2024/10/18 5:42:46/

clion 导出dll给别的项目用,并且引入matplotcpp
dll生成一个mydll的dll文件
1.先做一个简单dll的测试下

cmake_minimum_required(VERSION 3.26)
project(untitled)
set(CMAKE_CXX_STANDARD 11)
add_library(untitled SHARED main.cpp)

main.h

void hello();

main.cpp

void hello()
{std::cout << "Hello, mylib!" << std::endl;
}

在这里插入图片描述

在这里插入图片描述
ctrl+f9生成构建到目录下,生成libuntitled.dll
在这里插入图片描述
2.生成mydll用controller.cpp测试

cmake_minimum_required(VERSION 3.26)
project(mydll)
set(CMAKE_CXX_STANDARD 11)
add_library(mydll SHARED controller.cpp)

controller.cpp

#include "controller.h"Controller::Controller(float _a_dist) : a_dist(_a_dist) {}

controller.h

#include <vector> class Controller {
private: float a_dist; public:Controller(float a_dist_ = 1.0);~Controller() = default;
};

生成libmydll.dll
3.clion调用

cmake_minimum_required(VERSION 3.26)
project(testpython)set(CMAKE_CXX_STANDARD 11)##python h, python数学计算
include_directories(D:\\app\\dev\\Python37\\includeD:\\app\\dev\\Python37\\Lib\\site-packages\\numpy\\core\\include)##python lib 测试的dll
link_libraries(D:/app/dev/Python37/libs/python37.libC:/Users/andyz/CLionProjects/untitled/cmake-build-debug/libmydll.dllC:/Users/andyz/CLionProjects/testdll/lib/libuntitled.dll)add_executable(testpython main.cppmatplotlibcpp.h)

目录结构
在这里插入图片描述

#include <iostream>
#include "Python.h"
#include "controller.h"
#include "matplotlibcpp.h"namespace plt = matplotlibcpp;void hello();int main() {hello(); float a_dist = 1; Controller controller(a_dist);Py_Initialize();PyRun_SimpleString("print('hi python')");Py_Finalize();std::cout << "Hello, World!" << std::endl;return 0;
}

输出结果,一个是简单dll,一个是PyRun_SimpleString
在这里插入图片描述

4.qt生成的dll在vs 2022调用
参考这个文章https://blog.csdn.net/u010260855/article/details/22594191

#if defined(LOS_LIBRARY)
#define ADD_EXPORTS _declspec(dllexport)
#else
#define  ADD_EXPORTS _declspec(dllimport)
#endif
class ADD_EXPORTS add
{
public:add(void);~add(void);static int myadd(int a, int b){return a+b;}
};
#ifndef ADD_EXPORTS
#define ADD_EXPORTS//这个宏的名称与头文件中要一致
#endif#include "add.h"
add::add(void)
{
}
add::~add(void)
{
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码目录需要放置los.dll
在这里插入图片描述


http://www.ppmy.cn/news/1222757.html

相关文章

JQuery ajax 提交数据提示:Uncaught TypeError:Illegal invocation

JQuery ajax 提交数据提示&#xff1a;Uncaught TypeError:Illegal invocation 1 问题描述 用jQuery Ajax向DRF接口提交数据的时候&#xff0c;console提示&#xff1a;Uncaught TypeError:Illegal invocation(未捕获的异常&#xff1a;非法调用)。 这个问题可能有两种原因导…

hologres 索引与查询优化

hologres 优化部分 1 hologres 建表优化1.1 建表中的配置优化1.1 字典索引 dictionary_encoding_columns1.2 位图索引 bitmap_columns1.2.2 Bitmap和Clustering Key的区别 1.3 聚簇索引Clustering Key 1 hologres 建表优化 1.1 建表中的配置优化 根据 holo的 存储引擎部分的知…

常见的SQLite语句

SQLite是一种嵌入式关系型数据库管理系统&#xff0c;它使用SQL&#xff08;Structured Query Language&#xff09;语言进行数据管理和操作。下面是一些常见的SQLite语句以及它们的详细介绍和示例说明。 1、CREATE TABLE&#xff1a;用于创建表格。它指定了表的名称和列的定义…

【vue】下载导出excel

下载导出excel 首先使用的tdesign框架&#xff0c;要导出后端返回的数据流excel 遇见的问题 下载的文件&#xff0c;里边的内容是undefined 观察报错 一看就知道并不是后端的报错&#xff0c;后端不可能是undefined 在强烈的好奇心驱动下&#xff0c;看了下接口&#xff0…

这次轮到微软炸场了;5000+AI工具调研报告 (500万字);狂打一星开喷AI聊天机器人;CMU LLM课程;AI创业的方向与时机 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f251; Microsoft Ignite 2023 技术大会&#xff1a;微软的年度炸场时刻&#xff0c;而且连炸四天 https://ignite.microsoft.com OpenAI 开发…

anaconda中安装pytorch和TensorFlow环境并在不同环境中安装kernel

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

面试笔记:你在开发中遇到过什么问题

持续更新~ java后端 mysql时差相差八小时。 tomcat的session有效时间只有两个小时。 tomcat的默认文件上传大小不大于1MB。 下载文件时文件名有特殊字符&#xff08;URL不支持的字符&#xff0c;空格&#xff0c;下划线等&#xff09;&#xff0c;文件名变成了请求地址的路…

main.js 中的 render函数

按照之前的单组件文件中的写法&#xff0c;我们的写法应该是这样的 import App from ./App.vuenew Vue({el: #app,templete: <App></App>,components: {App}, }) 1、定义el根节点。2、注册App组件。3、渲染 templete 模板 但是在脚手架工程中&#xff0c;他是这…