C++
mtOS1573
这个作者很懒,什么都没留下…
展开
-
简单的Makefile编写
CC = gcctarget = udp_simple_serverobj = udp_server.oDIR = ($shell pwd)QUIET_CC = @printf ' %b %b\n' CC $@ 1>&2;QUIET_LD = @printf ' %b %b\n' LD $@ 1>&2;%.o: %.c $(QUIET_CC)$(CC) -c $< -o $@$(target): $(obj) $(QUIET_LD).原创 2022-02-20 12:19:21 · 1061 阅读 · 0 评论 -
git日常操作
1.拉取远程分之git clone http://xxxxxx.git2.删除远程分之在开发过程中,大家在远程创建了许多分支,有些是无用的,该如何删除呢,可以参考下面的方法。如果不再需要某个远程分支了,比如搞定了某个特性并把它合并进了远程的 master 分支(或任何其他存放稳定代码的地方),可以用这个非常无厘头的语法来删除它:git push[远程名] :[分支名]。如果想在服务器上删除 serverfix 分支,运行下面的命令: git push origi...原创 2020-09-20 14:53:32 · 88 阅读 · 0 评论 -
ubuntu or ubuntu like to solve error: QtQml/QQmlApplicationEngine: No such file or directory
error: QtQml/QQmlApplicationEngine: No such file or directoryon ubuntuapt install -y qtdeclarative5-dev原创 2020-09-12 22:33:57 · 606 阅读 · 0 评论 -
CMake中添加Qt模块的合理方法
用CMake来组织的工程中要用Qt首先要设置、找到Qt相关模块。主要是通过find_package这个CMake命令。但网上很多教程都过时了,或者不够清晰灵活。因为这部分很常用,所以特别用一篇文章把我们目前在生产环境中使用的方法给大家介绍下。设置Qt库路径Qt版本很多,我们的开发机上一般也装有多个不同版本的Qt。个人尝试性的项目一般用最新版的Qt,而真正发布的产品一般用的是LTS版本Qt(LTS:Long Term Support,长期支持版本,目前最新的LTS是5.9)。我们的方法是在系统中添原创 2020-09-10 23:47:59 · 14073 阅读 · 1 评论 -
编译linux overlayfs模块
当我们需要使用一个内核模块的时候,在当前使用版本内核编译的时候又没有加进去,在不改变内核版本的时候,再编译整个内核,可能会覆盖原来的内核,导致系统无法启动现在我们能够单独选择需要的模块,然后加载进内核准备工作首先进入你当前使用的系统查看当前的使用内核版本,在这里是 2.3.39下载对应内核源码包 linux-2.6.39.tar.bz2 将源码包放入 /usr/src/ 下解压...原创 2020-04-12 21:09:37 · 1607 阅读 · 2 评论 -
c++结构体指针定义与使用
#include <iostream>using namespace std;typedef struct _st_point{ int x; int y;}st_point,*p_st;int main(){ p_st p; p=new st_point; int x=p->x=0; cout << x << e...原创 2018-11-20 09:32:25 · 9862 阅读 · 0 评论 -
linux c/c++串口通信
/*串口设备无论是在工控领域,还是在嵌入式设备领域,应用都非常广泛。而串口编程也就显得必不可少。偶然的一次机会,需要使用串口,而且操作系统还要求是Linux,因此,趁着这次机会,综合别人的代码,进行了一次整理和封装。具体的封装格式为C代码,这样做是为了很好的移植性,使它可以在C和C++环境下,都可以编译和使用。代码的头文件如下: *////////////////////////////...原创 2018-09-02 17:59:19 · 6247 阅读 · 2 评论 -
构建gnome 遇到的各种问题
CopyrightCopyright © José Luis Lara Carrascal 2013-2017 SumarioIntroducciónInstalaciónDesinstalaciónIntroducción Este manual se incluye en la web como complementario del manual del gestor de pelíc...原创 2018-06-06 15:47:01 · 934 阅读 · 1 评论 -
C语言删除数组指定元素
#include // 删除长度为len的数组dat中索引为idx的元素。void remove(int *dat, int *len, int idx){ (*len)--; if (idx = *len) return; for (int i = idx; i dat[i]原创 2018-01-02 11:18:19 · 27039 阅读 · 0 评论 -
CentOS折腾codeblocks
https://www.cnblogs.com/wuchanming/p/3810326.html转载 2017-11-27 12:26:09 · 232 阅读 · 0 评论 -
【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法
更新dbus版本来解决..首先去 http://dbus.freedesktop.org/releases/dbus/ 下载dbus的最新版本...解压后,进入 文件夹:dbus-1.8.0运行如下命令:./configure --prefix=/usrmakesudo make install安装完成,更新连接文件把 /usr/lib/libdubs-1.so.3....原创 2018-12-21 22:52:19 · 918 阅读 · 0 评论 -
pacemaker简介
一、前言 云计算与集群系统密不可分,作为分布式计算和集群计算的集大成者,云计算的基础设施必须通过集群进行管理控制,而作为拥有大量资源与节点的集群,必须具备一个强大的集群资源管理器(ClustersystemManager,CSM)来调度和管理集群资源。对于任何集群而言,集群资源管理器是整个集群能够正常运转的大脑和灵魂,任何集群资源管理器的缺失和故障都会导致集群陷人瘫痪混乱的状态。O...原创 2019-04-13 12:27:52 · 648 阅读 · 0 评论 -
file命令移植到龙芯mips64el平台
获取源代码git clonehttps://github.com/file/file.gitcd filegit checkout FILE5_36$ cd file./configure --prefix=/usr --host=mips64el-linux --build=mips64el --target=mips64elcd srcmakemake...原创 2019-05-02 18:10:43 · 1177 阅读 · 0 评论 -
Python模块常用的几种安装方式
Python模块安装方法一、方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib二、方法2: 多文件模块,带setup.py下载模块包,进行解压,进入模块文件夹,执行:python setup.py install三、 方法3:easy_install 方式先下载ez_setup.py,运行python ez_setup 进行easy_install工具...原创 2019-05-02 20:10:24 · 196 阅读 · 0 评论 -
龙芯平台构建软件automake m4 autoconf 参数使用方法
1、configure: error: cannot guess build type; you must specify one解决方法UNAME_MACHINE = i686UNAME_RELEASE = 4.4.0-31-genericUNAME_SYSTEM = LinuxUNAME_VERSION = #50~14.04.1-Ubuntu SMP Wed Jul 13 01:...原创 2019-04-28 15:09:08 · 534 阅读 · 0 评论 -
pkgconfig管理包配置文件示例
## Copyright (C) 2010-2019 Red Hat, Inc. All rights reserved.## Author: Federico Simoncelli <fsimon@kronosnet.org>## This software licensed under GPL-2.0+, LGPL-2.0+#prefix=/usrexec_pr...原创 2019-05-01 07:31:11 · 477 阅读 · 0 评论 -
RedHat CentOS系列桌面系统添加图表到桌面、开始菜单
图标加到桌面实际上就是编写一个.Desktop的配置文件使gnome-session等程序读取以Eclipse 为例桌面[Desktop Entry]Name=EclipseComment=Use the code lineTryExec=gnome-terminalExec=/opt/eclipse/eclipse/eclipseIcon=/opt/eclipse/ecl...原创 2019-07-30 15:30:28 · 1410 阅读 · 0 评论 -
shell中的clear命令实现
之前一直不太清楚,当我们在shell命令行输入很多命令,会在屏幕上输出一些信息,为什么一执行clear这个命令以后,所有的信息就没了呢?现在终于搞明白了,找到了clear命令的源代码clear.c源码如下:#include int clear_main(int argc, char **argv) { /* This prints the clear screen and原创 2017-08-10 13:53:35 · 4388 阅读 · 0 评论 -
例解 autoconf 和 automake 生成 Makefile 文件
例解 autoconf 和 automake 生成 Makefile 文件https://www.ibm.com/developerworks/cn/linux/l-makefile/转载 2017-08-09 11:13:19 · 199 阅读 · 0 评论 -
使用JNI写一个简单的程序
运行环境 centos1.执行 javah xxx 生成xxx.h的头文件 这里生成Demo.hdemo.h#include /* Header for class Demo */#ifndef _Included_Demo#define _Included_Demo#ifdef __cplusplusextern "C" {#endifJNIEXPORT原创 2017-08-01 16:47:34 · 259 阅读 · 0 评论 -
C++中的friend友元函数详细解析
友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。友元函数的特点是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。我们已知道类具有封装和信原创 2015-11-15 20:41:44 · 733 阅读 · 0 评论 -
C++编程常见错误—cannot have cv-qualifier//不能有CV限定
在C++中CV指const和volatile—1、非成员函数不能有CV限定,友元函数不是类的成员函数声明友元函数不能用const限定。 friend voin fun(classname &ref)const;//编译器会给错误error: non-member function ‘xxxxxxxxx’ cannot have cv-qualifier2、静态成员函原创 2015-11-19 22:24:44 · 8066 阅读 · 0 评论 -
C++重载运算符
1.运算符重载定义:C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运转载 2015-12-31 23:10:01 · 434 阅读 · 0 评论 -
C++ 用libcurl库进行http通讯网络编程
目录索引:一、LibCurl基本编程框架二、一些基本的函数三、curl_easy_setopt函数部分选项介绍四、curl_easy_perform 函数说明(error 状态码)五、libcurl使用的HTTP消息头六、获取http应答头信息七、多线程问题八、什么时候libcurl无法正常工作九、关于密码十、HTTP验证十一、代码示例 1.基本的htt原创 2016-03-20 11:39:59 · 348 阅读 · 0 评论 -
Qt style
行文本输入框在用于界面的文本输入,在WEB登录表单中应用广泛。一般行文本编辑框可定制性较高,既可以当作密码输入框,又可以作为文本过滤器。QLineEdit本身使用方法也很简单,无需过多的设置就能进行使用。于是这篇博文主要讲解如何对行文本编辑框QLineEdit进行定制。12ui.lineEdit->setPlacehold转载 2016-03-12 14:38:35 · 557 阅读 · 0 评论 -
C++使用迭代器遍历数组
#include #include using namespace std; int main() { int arr[]={1,3,5,7,9}; list lis_arr(arr,arr+5); list::iterator it; for(it=lis_arr.begin();it!=lis_arr.end();++it) c原创 2016-04-07 10:15:57 · 6756 阅读 · 2 评论 -
STL--迭代器(iterator)使用详解
指针与数组指针与其它数据结构呢?比如说链表?存储空间是非连续的。不能通过对指向这种数据结构的指针做累加来遍历。能不能提供一个行为类似指针的类,来对非数组的数据结构进行遍历呢?这样我们就能够以同样的方式来遍历所有数据结构(容器)。迭代器(Iterator)是指针(pointer)的泛化,它允许程序员以相同的方式处理不同的数据结构(容器)。STL中有五种类型的迭代器,它们分转载 2016-04-07 10:21:02 · 11975 阅读 · 0 评论 -
C++静态成员和非静态成员的区别
1.数据成员可以分静态变量、非静态变量两种.静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.静态成员在每个类中只有一个拷贝,是解决同一个类的不同对象之间数据和函数共享问题的。原创 2016-04-14 10:03:32 · 6974 阅读 · 0 评论 -
C++构造函数以及析构函数的若干面试问题
Q1:构造函数能否重载,析构函数能否重载,为什么?A1:函数重载就是同一函数名的不同实现,并且能在编译时能与一具体形式匹配,这样参数列表必须不一样。由于重载函数与普通函数的差别是没有返回值,而返回值不能确定函数重载,所以构造函数可以重载; 析构函数的特点是参数列表为空,并且无返回值,从而不能重载。 例如:class A{public: A(int n)原创 2016-04-14 12:23:32 · 900 阅读 · 0 评论 -
C++中的类模板详细讲述
一、类模板定义及实例化1. 定义一个类模板:View Code 1 templateclass 模板参数表>2 3 class 类名{4 5 // 类定义......6 7 }; 其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数 ,也可以是非类型参数。类型参数由关键字class或type转载 2016-04-15 19:26:12 · 330 阅读 · 0 评论 -
GDB调试程序
Gdb 开发基础 学习Gdb调试步骤详解视频欣赏gdb准备安装与调试 前的准备工作 gcc -g[点击观看视频]查看源代码list调试单文件应用查看程序代码[点击观看视频]调试多文件应用查看程序代码[点击观看视频]调试多文件应用查看某行代码[点击观看视频]break n转载 2016-04-19 21:38:04 · 338 阅读 · 0 评论 -
静态链表
#include#include typedef struct Student{ int age; char *name; struct Student *next;}Student,*List;int main(){ Student *s1=malloc(sizeof(Student)); Student *s2=malloc(sizeo原创 2016-04-19 22:00:07 · 411 阅读 · 0 评论 -
使用 libevent 和 libev 提高网络应用性能
管理多个 UNIX 网络连接构建现代的服务器应用程序需要以某种方法同时接收数百、数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作。有许多解决方案,但是 libevent 库和 libev 库能够大大提高性能和事件处理能力。在本文中,我们要讨论在 UNIX® 应用程序中使用和部署这些解决方案所用的基本结构和方法。libev 和 libevent 都转载 2016-05-22 12:10:03 · 492 阅读 · 0 评论 -
linux c 实现一个进度条
#include #include #include #include void drawper(int iFirst, int iSecnd, char* spOut) { static int iCrlmm = 0; int iPer = iFirst*100/iSecnd; if(iFirst==iSecnd) sprintf(spOut原创 2016-06-06 18:39:28 · 1036 阅读 · 0 评论 -
Linux下启动C/C++守护进程的bash脚本
chmod a+x adminApp.sh./adminApp.sh checkconfig #检查设置./adminApp.sh status #查看状态./adminApp.sh start #启动所有程序./adminApp.sh stop #停止所有程序原创 2016-11-16 16:09:09 · 1503 阅读 · 0 评论 -
Building OpenWRT for RTL8196C
In previous post there wasn't clearly described how to downloadand compile sources for OpenWRT realtek release. Its not officialrepository because not yet all things is updated with mainlineOpen转载 2017-02-23 07:16:09 · 3338 阅读 · 0 评论 -
Qt中根据不同版本号使用不同源码
qmake是用来为不同的平台的开发项目创建makefile的Trolltech开发一个易于使用的工具。qmake简化了makefile的生成,所以为了创建一个makefile只需要一个只有几行信息的文件。qmake可以供任何一个软件项目使用,而不用管它是不是用Qt写的,尽管它包含了为支持Qt开发所拥有的额外的特征。qmake基于一个项目文件这样的信息来生成makefile。项目文件可以由开发者转载 2017-07-19 09:23:19 · 1413 阅读 · 0 评论 -
C++中虚函数与纯虚函数的用法
本文较为深入的分析了C++中虚函数与纯虚函数的用法,对于学习和掌握面向对象程序设计来说是至关重要的。具体内容如下:首先,面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承、动态绑定。通过数据抽象,可以使类的接口与实现分离,使用继承,可以更容易地定义与其他类相似但不完全相同的新类,使用动态绑定,可以在一定程度上忽略相似类的区别,而以统一的方式转载 2015-11-22 10:47:32 · 536 阅读 · 0 评论