文档章节

Dlib库Window下Qt编译(用mingw)

linch
 linch
发布于 2017/04/02 22:41
字数 454
阅读 310
收藏 0

参考文章如下:(俺还是很有版权意识滴,尊重原作者的劳动成果)

http://www.cnblogs.com/freegodly/p/4259040.html?utm_source=tuicool&utm_medium=referral

关于Dlib库的编译,网上都是依赖CMAKE,其实并不需要,用gcc或者mingw就可以的。

具体实践如下

1.下载最新Dlib库:

dlib-19.4.ziphttp://dlib.net/files/dlib-19.4.zip

2.解压缩(我的是E:\Dlib\dlib-19.4),你们随意

3.用Qt库新建工程

*.pro文件需要追加重点

    1).CONFIG += c++11(dlib是用C++11)

    2).SOURCES += E:/Dlib/dlib-19.4/dlib/all/source.cpp(为防止遗漏的头文件,就用这个)

    3).LIBS += -lwsock32  -lws2_32 -limm32  -luser32 -lgdi32 -lcomctl32 -lwinmm

        (这个就是依赖系统的库)

    4).INCLUDEPATH += E:/Dlib/dlib-19.4(指定头文件的路径)

        注,不知道是否为版本差异,参考那个文章没有追加(-lwinmm链接),会报下面这个错误

        E:\Dlib\dlib-19.4\dlib\misc_api\misc_api_kernel_1.cpp:98:

                error: undefined reference to `_imp__timeGetTime@0'

追踪代码后发现依赖window的DWORD WINAPI timeGetTime系统函数,百度一下就知道这个库依赖Winmm,

 

代码为参考文章的:

客户端:

#include <iostream>
#include <dlib/bridge.h>
#include <dlib/type_safe_union.h>
#include <dlib/timer.h>

using namespace std;
using namespace dlib;

//管道
dlib::pipe<string> out(4),in(4);

//定时类
class timer_task
{
public:
    void timer_send()
    {
        string msg("this client msg");
        out.enqueue(msg);

        string re;

        in.dequeue(re);
        cout << "client receive :" << re << endl;
    }
};

int main()
{
    bridge b1(connect_to_ip_and_port("127.0.0.1", 12345), \
              transmit(out), receive(in));

    timer_task task;

    timer<timer_task> t(task, &timer_task::timer_send);

    t.set_delay_time(1000);

    t.start();

    dlib::sleep(10000000);

    cout << "Hello World!" << endl;
    return 0;
}

 

 

服务器端:

 

#include <iostream>

#include<dlib/bridge.h>
#include<dlib/type_safe_union.h>
#include<dlib/timer.h>


using namespace std;
using namespace dlib;

dlib::pipe<string> out(4),in(4);

//定时类
class timer_task
{
public:
    void timer_send()
    {
        string msg;
        in.dequeue(msg);
        cout << "server receive :" << msg << endl;

        string value = "this is server send";

        out.enqueue(value);
    }
};

int main()
{
    cout << "Hello World!" << endl;

    bridge b1(listen_on_port(12345), transmit(out), receive(in));

    timer_task task;

    timer<timer_task> t(task,&timer_task::timer_send);

    t.set_delay_time(1000);

    t.start();

    dlib::sleep(10000000);
    return 0;
}

 

运行结果如下:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 著作权归作者所有

linch

linch

粉丝 3
博文 18
码字总数 6708
作品 0
广州
程序员
私信 提问
加载中

评论(3)

linch
linch

引用来自“287061239”的评论

为何同样的方式我编译报错,能提供项目下载看看吗
好久没上开源中国了。。。你不贴报错信息,看不出错误呀,然后代码都在上面啦
2
287061239
我用的Qt5.4.2 Dlib同样为19.4
2
287061239
为何同样的方式我编译报错,能提供项目下载看看吗
window下搭建qt开发环境编译、引用ace

工作中经常用到ace、tao等,在windwo下的c++开发工具基本上就是vs20xx这些工具,还有些就是类似编辑工具例如:source insight等,前者比较大,打开、编译运行比较慢,二期针对ace这样打的库设...

DEC_LIU
2013/01/17
0
0
OpenCV使用CMake和MinGW的编译安装及其在Qt配置运行

软件环境 Windows-10-64bit Qt-5.9.3 MinGW-5.3.0-32bit CMake-3.9.2 OpenCV-3.3.1 / 3.4.1(适用) 编译好的 OpenCV(MinGW 版): Github . huihut/OpenCV-MinGW-Build OpenCV 的 MSVC 版及 ......

数据为王
2018/05/21
0
0
OpenCV2.4.2+Qt SDK1.2.1安装配置详解(WIN7环境上安装)

原文为《OpenCV2.3.1+Qt SDK1.2.1安装配置详解(WIN7环境下安装)》,2.4.2可以用同样的方法配置,不过2.4.3暂时无法通过编译。原文如下: 1、安装工具下载地址 OpenCV2.3.1 :点击打开链接 ...

vazor
2012/11/15
0
0
Eclipse + MinGW + Qt开发环境设置

转一篇很老的文章 1.下载Eclipse 目前Eclipse+CDT已经可以集成下载了,好像优化过了,速度还比较快。 下载的地址是:http://www.eclipse.org/downloads/,选择“Eclipse IDE for C/C++ Devel...

鉴客
2010/08/26
4.7K
8
qt5.3.1+opencv2.4.9编译环境的搭建

到官网下载qt-opensource-windows-x86-mingw482_opengl-5.3.1.exe文件,执行该文件,选择默认安装即可实现QT的安装(安装在C盘的根目录下),该文件封装好了Qt libraries、Qt Creator,其中Q...

peizhenfly
2015/04/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
今天
5
0
思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
10
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
5
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
8
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部