QT引用boots库pro怎么处理

QT引用boots库pro怎么处理,第1张

Qt Creator+MinGW+boost特殊函数的使用示例:

先编译和安装boost:

[plain] view plain 郑缺copy

bootstrap.bat gcc

.\b2 --toolset=gcc --prefix=E:\boost install

新建qt控制台项目,然后在*.pro文件中添加一行:

[plain] view plain copy

INCLUDEPATH += E:/boost/include/boost-1_53

测试acosf和贝赛尔函数,下面是main.cpp

[cpp] view plain copy

#include <QCoreApplication>

#include <boost/math/special_functions/acosh.hpp>

#include <boost/math/special_functions/bessel.hpp>

#include <iostream>

using namespace boost::math

using namespace boost::math::detail

int 含丛手main(int argc, char *argv[])

{

QCoreApplication a(argc, argv)

std::cout<<"Test Boost:"<<std::endl

std::cout<谈嫌<acosh(2.5)<<std::endl

std::cout<<bessel_i0(3.2)<<std::endl

std::cout<<"Test Finished!"<<std::endl

return a.exec()

}

程序部分界面和运行结果为:

一、建立并生成动态链接库

1

我们首先在磁盘的某个位置建立一个名为DllDemo的文件夹。

打开QtCreator,新建工程,我们选择Library,C++库,然后就是choose。

怎样在Qt中建立使用动态链接库

2

然后在d出的C++库对话框我们默认类型共享库,名称为MyDll。路径就是我们刚才建立的DllDemo文件夹。然后,一直下一步,直到点击完成。

怎样在Qt中建立使用动态链接库

3

我们来看看程序结构,以及pro文件内容。

我可以看到系统自动生成了一个mydll_global.h的文件。

pro内也自动生成了一些内容。可以看到TEMPLATE = lib,而不是我平时的TEMPLATE = app。

怎样在Qt中建立使用动态链接库

4

再来看看mydll_global.h的内容行碧。

可以看到系统自动定义了两个宏。用于声明哪些函数是需要我们导羡链出的。

怎样在Qt中建立使用动态链接库

5

下面我们来给我们的代码添加点内容,以便于我们待会使用。

首先我们在mydll.h中添加几行代码,如下图。

注意:extern "C" MYDLLSHARED_EXPORT必须要有。

怎样在档派举Qt中建立使用动态链接库

6

再来看看mydll.cpp中的实现代码,都比较简单。

怎样在Qt中建立使用动态链接库

7

代码编写完毕后,我们直接构建就行了。然后就可以看到我们生成的dll了。

怎样在Qt中建立使用动态链接库

END

二、测试生成的DLL

新建一个基于Qt的控制台应用程序,名称为DllTest。依然放置在我们的DllDemo的目录下。

怎样在Qt中建立使用动态链接库

建好了以后,就可以在main.cpp写代码了。我们通过QLibrary类来加载dll。

因为要获得类对象的实例,所以我们需要将mydll.h包含进来。

要注意的是,我没有对函数是否成功获取做检测。

来看看我们的代码:

怎样在Qt中建立使用动态链接库

代码写完后就可以构建程序了。不过要运行程序,我们还需要将刚才生成的dll拷贝到程序的同级目录。

怎样在Qt中建立使用动态链接库

在IDE中运行程序,因为我生成的是debug版的程序,相关的环境变量未设置,无法独立运行。

可以看到我们的dll工作的很好,程序运行正常。

怎样在Qt中建立使用动态链接库

END

三、善用Assistant

1

最后我们来看看Assistant中关于QLibrary的描述。比较费解的是,Assistant中并没有对创建共享库做详细的说明,估计是这个太简单或资料太多了吧。

怎样在Qt中建立使用动态链接库

1.首先在该链接处下载 Qt library和 Qt creater(http://qt-project.org/downloads),

我使用的 Qt library是qt-win-opensource-4.8.5-mingw.exe,

Qt creater是qt-creator-windows-opensource-2.7.2.exe

安装友袜QT之前,还需要下载MinGW-gcc,我使用的是MinGW-gcc440_1.zip;

http://ishare.iask.sina.com.cn/f/34637805.html这儿可以免费下载敬拦;

2.做好了所有准备后,我们开始安装;

(1)。在安装Qt之前,我们简单了解下MinGW。(http://baike.baidu.com/view/98554.htm)

MinGW是一个可以自由使用和自由发布的Windows特定头文件和使用GUN工具集导入库的集合,允许在GUN/Linux和我Windows平台生成本地的Windows程序而不需要第三方C运行时库。

我们在安装Qt之前,需要在系统中存放这个MinGW工具库。这里,我存放的位置是 D:\Install software;(当然,你完全可以存放在其他地方,只要你自己记住位置就可以了),因为下面的安装过程需要用到这个库。

(2)。接下来,开始安装Qt library。直接双击exe文件就可以了,然后根据提示进行安装,这里我选择安装的位置是D:\QT;安装过程中有个地方需要填入MinGW的位置,该位置就是上一步中MinGW存放的位置,我这里的位置是D:\Install software\mingw;然后很轻松就完成安装;

(3)。然后,为了以后能更方便的使用Qt,我们需要先编译一下。在开始菜单中,找到Qt by Digia v4.8.5 (MinGW OpenSource)好稿激这个文件夹,打开,里面会有Qt 4.8.5(Build Debug Libraries)的一个批处理文件,点击后会进入windows下的DOS界面,然后根据里面的提示,根据自己的选择来编译这个库。很简单,就2步吧。不过这个时间有点长,因为库比较大,我电脑比较慢,差不多编译了快4个小时,编译时就和linux下的命令行界面一样的,一行一行的指令往上飞。

(4)。编译完成后,我们需要配置系统环境变量。右键单击我的电脑,选择属性,进入高级系统设置,单击右下角的环境变量,在环境变量path中添加 D:\QT\binD:\Install software\mingw\bin 然后再添加两个环境变量

QTDIR=D:\QT(编译时的默认目录,这个可以随意设置,用来存放工程文件的);

QMAKESPEC=win32-g++

到这里,windows下的Qt开发环境基本就配置好了。

下面,我们在D:\QT的目录下创建一个project的文件夹,再在project中创建hello文件夹,再在hello文件夹中创建一个cpp文件,写入一下测试程序:

#include <QApplication>//包含QApplication头文件

#include <QPushButton>//包含QPushButton头文件

int main(int argc, char *argv[]) // 还是标准的main函数

{

QApplication app(argc, argv); // 构造应用,同MFC中的WinApp

QPushButton hello("Hello world!"); // 构造PushButton

hello.resize(100, 30);// 设置按钮大小

hello.show(); // 显示按钮

return app.exec(); // 执行应用,同MFC中的Run

}

然后打开开始菜单中的 Qt 4.8.5 Command Prompt ,通过cd 命令找到cpp所在的路径地址,再输入

qmake -project

make

最后,编译成功通过,会在hello文件夹下的release文件夹中生成一个。exe文件,双击执行即可。也可以在DOS下执行,进入文件夹目录,直接输入:hello.exe 即可;这里,我还列出了一些常用指令

dir 查看文件列表,同linux下的“ls”

cd 改变文件目录 “cd ”返回到上一层 “cd \”到所在磁盘,一般为c:

del 删除一个文件

mkdir创建一个文件夹

rmdir 删除一个空文件夹

notepad xx.cpp 用记事本打开(如果没有则是创建)xx.cpp文件 也可以是。h文件

3.如果觉得使用命令行不习惯,那么就可以安装Qt creater,这是一个图形化的设计编译界面,直接使用EXE文件安装。安装完成后,打开软件,单击工具栏,单击选项按钮,进入下面的页面:

单击构建和运行(这是新版本,老版本是“Qt4”),就是上面这个页面,将Qt版本中的qmake路径手动设置为Qt安装路径中的bin文件夹下的qmake.exe文件即可(添加,确定);

这时你可以在creater中添加hello的项目,看看调试时候能够通过,能否正常运行,如果出现调试不通过,gbd异常中断,那么你还需要下载gdb。因为在之前的Qt Creator中,是以一个Qt SDK的整体来提供的,里面就包括了MinGW和调试器,而且也无需配置,现在的新版本都是分散安装的,所以就需要自己单独再找找了。网上的一个说法是2.5以上的版本必须使用7.2 IIRC版以上的GDB,需要需要自己单独下载,这里我找到两个下载地址。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11981490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存