- 博客(20)
- 资源 (17)
- 收藏
- 关注
原创 Linux下C/CPP开发,函数符号冲突问题
起因测试给我提了一个BUG,我们的程序在连接HTTPS服务端后,莫名crash。在还原测试环境后,通过gdb调试,发现crash在libcurl的curl_easy_platform这个函数里面,于是开启了漫长的debug之旅,最终发现是函数符号冲突所致。还原函数符号冲突情景首先准备三个模块静态库libA.a动态库libB.so可执行二进制test.bin静态库libA.a静态...
2019-09-30 16:58:04
597
原创 Linux下使用-static -lpthread静态编译出现段错误(Segmentation fault)
Linux;静态编译;段错误;-static -lpthread;Segmentation fault。
2017-12-05 12:28:33
2472
原创 Windows下使用MinGW编译boost库
准备工作MinGW首先要安装MinGW,并添加MinGW的bin路径至环境变量Path。 MinGW下载地址:https://sourceforge.net/projects/mingw-w64/ 或:http://download.youkuaiyun.com/download/godmaycry/10143726 MinGW配置成功标志:在cmd控制台下输入gcc -v,如显示gcc版本信息,即成功。
2017-12-04 10:51:29
6119
原创 Windows下使用CMake+MinGW静态编译发布.exe程序
最近使用mingw编译了一份boost静态库,在CMake编译成.exe程序发布后,发现仍旧提示缺少DLL文件。提示缺失的DLL文件大概如下:libgcc*.dlllibstdc++*.dlllibwinpthread-1.dll经过简单摸索之后,终于找到了解决方法。#需要在CMakeLists.txt添加以下内容#设置静态编译set(CMAKE_CXX_FLAGS "${CMAKE_CXX_
2017-12-03 10:55:47
4194
原创 Boost库解密——自动链接库(auto_link)
Boost库的自动链接库boost是一个著名而强大的C++开源库,它可以说是标准库STL的补充,被称为C++的“准标准库”。 在boost库的应用中,大部分的接口只需要包含头文件即可,少部分需要链接已编译的boost库文件。然而实际使用你会发现,其实并不需要手动链接库文件,我们只需包含库文件路径,boost会帮我们自动链接库文件。 这就是boost的自动链接库——auto_link。auto_l
2017-11-30 10:22:40
4022
原创 C++设计模式——一个基于C++11的万用单例模板类
单例模式概述单例模式(Singleton),是设计模式里面最常见、最常用的设计模式,也是最简单、最容易实现的设计模式。 单例模式的目的很简单,创建一个全局唯一的对象(类or变量)。简单代码实现//Simple_Singleton.hclass Singleton {public: static Singleton* GetInstance() { if (!m_pSin
2017-11-06 15:41:54
2987
6
原创 Windows下CUnit编译安装教程
工作需要在Win端编译一个开源库,而这个开源库依赖于CUnit。在sourceforge下载了CUnit-2.1-3,而文档的编译方法在win下根本编译不过去。去百度编译方法,却发现结果都是错的,最后在爆栈网(stackoverflow.com)找到了解决方法。准备工具:首先要安装mingw和msys,下载地址:点击打开链接注意只需选择Basic Setup安装即可,如下图:
2017-08-22 15:42:13
6752
6
原创 [C++11]std::packaged_task介绍及使用
一、std::packaged_task简介在上一篇,我们介绍了std::promise的使用方法,其实std::packaged_task和std::promise非常相似,简单来说std::packaged_task是对std::promise>中T= std::function这一可调对象(如函数、lambda表达式等)进行了包装,简化了使用方法。并将这一可调对象的返回结果传递给关联的s
2017-06-05 17:16:34
21954
8
原创 [C++11]std::promise介绍及使用
注:本文系原创,转载请注明地址及作者。一、std::promise介绍std::promise是C++11并发编程中常用的一个类,常配合std::future使用。其作用是在一个线程t1中保存一个类型typename T的值,可供相绑定的std::future对象在另一线程t2中获取。二、代码示例:下面我们通过几个简单小例子逐渐深入了解std::promise的使用方法。
2017-06-02 16:16:48
34362
10
原创 虚拟机VMware设置开机启动
VMware是使用最多桌面虚拟化工具程序,常用于工作站与服务器。使用VMware最常见的问题就是不能在界面上设置开机启动,下面将介绍设置开机启动的方法。第一步:打开“运行”,输入“shell:startup”,回车进入启动文件夹。第二步:将VMware的桌面快捷方式复制到开机启动文件夹下面。第三步:右键VMware快捷方式-->【
2016-08-30 18:18:13
2905
原创 VS2010+QT5编程之巧妙运用定时器解决QTreeView/QTableView等QAbstractItemView实时条目统计问题
QTableView等QAbstractItemView常用来做为表格显示,但一般情况下会放在另一个大框架下。比如说我写了一个数据库编辑器,主框架界面是QMainWindow,包含菜单栏、工具栏、状态栏,QTableView里显示的是数据库获取到的表格数据。可我想在状态栏显示QTableView里实时选取条目的数目,说到这可能大家觉得问题太简单,写一个简单线程或者重写QTableView类里的
2015-07-06 19:12:38
1387
原创 VS2010+QT5编程之用QTabWidget写标签页(页码)的注意事项
使用QTabWidget很容易实现浏览器多标签页的效果,QTabWidget的使用教程不再过多描述,网上实例很多,非常简单。下面说一个在使用QTabWidget写标签页时遇到的问题。添加标签页时会用到如下:int index = tabWidget->addTab(testWidget,strTitle); //testWidget标签页控件,strTitle标签页标题tabWid
2015-07-01 09:39:48
3003
1
原创 VS2010/VS2012/VS2013+QT5编程之开发环境配置
用VS+Qt5开发并不是什么难事,下面详细讲一下如何配置编译环境:第一步: 安装VS和其对应的sp补丁包,网上很容易就能下载到安装包,傻瓜式安装,这里不多介绍。第二步: 点击打开链接 分别在vsaddin里面选择下载最新的qt-vs-addin,在qt里面选择要下载的Qt版本,例如我用的是vs2010
2015-06-16 10:24:52
5404
原创 VS2010+QT5编程之QTableView数字排序
很多人发现QTableView中的排序很不科学,比如列排序的一列数101、35、2、87、5、779,排序出来变成了101、2、35、5、779、87。再比如“中国”、“山东”、“济南”、“历下”这一列字符串,排序出来会变成“中国”、“历下”、“山东”、“济南”。先说一下QTableView如何设置排序,首先请不要设置水平标题头隐藏(行排序请不要设置垂直标题头隐藏),代码如下: QH
2015-06-10 09:07:01
4713
1
原创 VS2010+QT5编程之QTableView同时删除选中的多行
QTableView同时删除选中的多行,对于新手来说是一个容易出现错误的地方。下面是一段错误的代码:QModelIndexList indexList = tableview->selectionModel()->selectedIndexes();QModelIndex index;foreach(index,indexList){ view_model->remov
2015-06-09 10:21:40
7157
1
原创 VS2010+QT5编程之为QTableView添加右键菜单
QTableView是一个比较实用的类,下面教给大家如何在QTableView中添加右键菜单。#include #include QTableView *tableview;QMenu *rightMenu; //右键菜单QAction *cutAction; //剪切QAction *copyAction; //复制QAction *pasteAction; //粘贴QA
2015-06-08 17:59:00
7368
2
原创 VS2010+QT5编程之QString与char*的相互转换
在使用QT5+vs2010编程中,QString与char*的相互转换并不是那么简单,当QString或者char*包含中文时,适用于QT4的转换方法在QT5中转换出来很可能就是乱码。QString转char*:QString qstr = "中国山东济南";std::string str = qstr.toStdString();const char* ch = str.c_str(
2015-06-05 09:29:32
1520
原创 VS2010+QT5编程之解决中文乱码及一些编译未通过问题
新手使用VS2010+QT5编程,最常见的问题就是中文乱码。然而QT5不同于QT4,网上QT4上解决中文乱码的方法是不适用于QT5的。下面介绍一种常用的解决中文乱码的方法:首先,把源码文件全部转换成utf-8编码。(VS2010中的转换方法:打开任一.cpp/.h文件,文件》高级保存选项》如下所示)在#include下面添加如下代码:#if _MSC_VER >= 1600
2015-04-22 10:37:19
1118
原创 VS2010+QT5编程之setWindowIcon报错解决方案
遇到问题:VS2010+QT5的环境下编译QT程序,在设置程序图标setWindowIcon这一块报错:1>qt_demo001.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: __thiscall QIcon::~QIcon(void)" (__imp_??1QIcon@@QAE@XZ),该符号在函数 "publ
2015-04-21 11:16:31
2686
原创 关于QT4中程序移植到QT5中报“undefined reference to”问题
最近在学QT,发现QT4中的一些示例程序在QT5中会报错。具体是关于打印机的一个函数会报:undefined reference to `_imp___ZN8QPrinterC1ENS_11PrinterModeEundefined reference to `_imp___ZN12QPrintDialogC1EP8QPrinterP7QWidgetundefined referenc
2015-04-13 16:38:30
4100
OpenSSL_1.1.1g_MinGW7.3_x64(64位静态库)
2020-05-29
OpenSSL_1.1.1g_MinGW7.3_x64(64位动态库)
2020-05-29
OpenSSL_1.1.1g_MinGW7.3_x86(32位静态库)
2020-05-29
OpenSSL_1.1.1g_MinGW7.3_x86(32位动态库)
2020-05-29
OpenSSL_1.1.1g_MinGW5.3_x86(32位静态库)
2020-05-29
OpenSSL_1.1.1g_MinGW5.3_x86(32位动态库)
2020-05-29
OpenSSL_1.1.1g_MinGW4.9.2_x86(32位静态库)
2020-05-29
OpenSSL_1.1.1g_MinGW4.9.2_x86(32位动态库)
2020-05-29
Qt 5.15_LTS_MinGW7.3(32位动态库)
2020-05-28
Qt 5.15_LTS_MinGW7.3(64位动态库)
2020-05-28
Linux下的函数符号冲突问题示例Demo.zip
2019-09-30
boost1.65.1_MinGW(动态/静态库)
2017-12-04
mingw-w64-install
2017-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人