Qt gsl库配置踩坑记录

2024-04-20 08:04
文章标签 配置 qt 记录 gsl

本文主要是介绍Qt gsl库配置踩坑记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

想求解非线性方程组,之前使用拟牛顿法写过相关的matlab代码,这次想移植到C++代码,网上说gsl库挺好用的,于是我也想试一下。相关参考:

  1. 【C++】GSL(GNU Scientific Library) 的安装及在 Visual Studio 2017 中的使用
  2. QT5使用mingw64和mingw32编译数学库GSL
  3. 有没有C/C++解非线性方程组的库? - Narcissu的回答 - 知乎
  4. QT5环境下配置GSL数学库

配置:
我使用的是minGW7.3.0编译器(记得添加minGW的bin目录的环境变量),下载的是gsl2.5的版本,我在当前的目录使用cmd结果运行上述博客里说的:

./configure

结果报错,我检查了一下我的minGW,确实是安装了,问题出在我少装了msys,msys获取网站:
MinGW-builds

./configure && make && make install

安装非常完美
在这里插入图片描述
然后把msys下面的include、lib和bin三个文件夹复制到自己的项目的目录下面,比如我这里使用的是Qt,再添加一个pri文件,把这些文件包含进来:

DEFINES += GSL_DLLINCLUDEPATH += $$PWD/includeLIBS += -L$$PWD/lib -llibgsl
LIBS += -L$$PWD/lib -llibgslcblas

在工程的pro里记得也把这个pri文件包含进来:

INCLUDEPATH += $$PWD/gsl/ 
include($$PWD/gsl/gsl.pri)
DISTFILES += gsl/gsl.pri 

按上面参考4测试一下程序

#include <iostream>
#include <cmath>
#include <gsl/gsl_sf_bessel.h>
using namespace std;int main(int argc, char *argv[])
{double x = 10.0;double y = gsl_sf_bessel_J0(x);cout << "J0(" << x << ") = " << y << endl;return 0;
}

完美
在这里插入图片描述
测试了一下参考3的关于gsl的代码,它提示说:

error: undefined reference to `__imp_gsl_multiroot_fsolver_hybrids

在参考2可以找到解决的方案,在include目录下找到对应的库,这里对应的明显是gsl_multiroots.h,然后我们进去这个文件,找到gsl_multiroot_fsolver_hybrids

注释掉的是原来的雨具,我们把GSL_VAR 改为extern就可以了:

//GSL_VAR const gsl_multiroot_fsolver_type * gsl_multiroot_fsolver_hybrids;
extern const gsl_multiroot_fsolver_type * gsl_multiroot_fsolver_hybrids;

然后记得clear项目然后重新构建,时间可能比较久,OK也跑起来了!
在这里插入图片描述
可以试着用这个库解非线性方程组了(心满意足)

这篇关于Qt gsl库配置踩坑记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

在Spring中配置Quartz的三种方式

《在Spring中配置Quartz的三种方式》SpringQuartz是一个任务调度框架,它允许我们定期执行特定的任务,在Spring中,我们可以通过多种方式来配置Quartz,包括使用​​@Sche... 目录介绍使用 ​​@Scheduled​​ 注解XML 配置Java 配置1. 创建Quartz配置

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

Kibana的安装和配置全过程

《Kibana的安装和配置全过程》Kibana是一个开源的数据分析和可视化平台,它与Elasticsearch紧密集成,提供了一个直观的Web界面,使您可以快速地搜索、分析和可视化数据,在本文中,我们... 目录Kibana的安装和配置1.安装Java运行环境2.下载Kibana3.解压缩Kibana4.配

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停