C++问题
各种编译以及使用的问题
泰勒朗斯
人,可以痛苦,可以失意,可以疯狂的爱,可以恣意的恨,却别忘了行程,别忘记赶路。
展开
-
/usr/bin/ld: libx264.a(dct-a.o): relocation R_X86_64_32 against `.rodata‘ can not be used when makin
最近在编译x264的时候出现了错误:/usr/bin/ld: libx264.a(dct-a.o): relocation R_X86_64_32 against `.rodata’ can not be used when making a PIE object; recompile with -fPIE通过查找发现了一篇文章:从Ubuntu16.10开始默认启用PIE,而makefile的库不支持PIE。故在CMakeliststxt中加入如下语句:set(CMAKE_C_FLAGS “KaT原创 2022-04-19 14:08:13 · 959 阅读 · 0 评论 -
meson 编译出现 [meson_options.txt:1:0: ERROR: Unknown type feature]错误
不能用apt install meson进行安装,而是通过pip来安装。那么大概率是meson安装出现了问题。首先安装python 2.7。原创 2022-12-21 19:47:11 · 1659 阅读 · 0 评论 -
threadsafe线程安全的C++ queue-header only
如题,这是一个只有头文件的C++模板队列,threadsafe.原创 2023-06-18 21:22:55 · 213 阅读 · 0 评论 -
跨平台代码收集的一些资料
1、操作系统和编译器的宏定义操作系统判定宏Windows: WIN32Linux: linuxSolaris: __sun编译器VC: _MSC_VERGCC/G++: GNUCSunCC: __SUNPRO_C和__SUNPRO_CCextern 和extern “”C“”原创 2021-11-11 10:52:34 · 587 阅读 · 0 评论 -
GLib学习
Gstreamer 基础【学习博客】一、glibglib介绍1.1 类型介绍glib的类型定义在gtypes.h文件中,关键定义如下:1.1.1 不规则类型gbooleangpointergconstpointergcharguchar1.1.2 整型gintG_MININTG_MAXINTguintG_MAXUINTgshortG_MINSHORTG_MAXSHORTgushortG_MAXUSHORTglongG_MINLONGG_MAXLONGg原创 2022-05-14 22:41:31 · 1547 阅读 · 1 评论 -
C++算法面试
1、单链表实现以及操作单向链表的C语言实现与基本操作数据结构】单链表的各种功能实现(C语言)原创 2022-02-23 13:23:49 · 590 阅读 · 0 评论 -
CMake个人实战
https://www.hahack.com/codes/cmake/原创 2022-02-21 09:33:36 · 110 阅读 · 0 评论 -
Linux 中如何在代码使用shell命令system()
有时候我们想要在C++代码中使用shell命令,我们可以用system()函数:下面是一个案例:bool getCpuId(std::string &cpuId) { cpuId.c_str();//因为我们要处理命令输出结果,所以我们把结果输出到一个文件中 const char *dmidecode_result = ".dmidecode_result.txt"; char command[512] = {0}; //如果是root用户 if (0 == getuid(原创 2022-02-15 16:10:38 · 622 阅读 · 0 评论 -
C++关于异常处理以及跳转
主要参考这篇文章:入口添加链接描述这篇文章中关于setjmp(jmp_bur)和longjmp() ,不是很理解,然后实际测试了一下:#include <iostream>#include <setjmp.h>jmp_buf static_buf;void do_jmp() { longjmp(static_buf, 10); }int main(int argc, char *argv[]) { int ret = 0; //关键点在这里,这里设置了返回点原创 2022-02-14 15:08:02 · 760 阅读 · 0 评论 -
Ping工具ICMP报文学习
首先,这里有一个很好的博客:[入口](https://blog.csdn.net/Poisx/article/details/100149881?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.pc_relevant_default&spm=1001.2101.3001.4242.2&utm_relevant_index=4)先说个结论,Ping是通过IP+ICMP协议发出原创 2022-02-11 19:36:50 · 1272 阅读 · 0 评论 -
Linux设置开机启动和定时任务crontab
一般来说Ubunt会默认安装crontab工具。特别注意:环境变量crontab读取不到的,一定在里面不要有环境变量。入口:入口2原创 2022-01-25 17:07:05 · 1593 阅读 · 0 评论 -
Qt 文档
入口原创 2022-01-21 19:36:59 · 560 阅读 · 0 评论 -
cmake学习手册
官方手册原创 2022-01-20 20:55:08 · 327 阅读 · 0 评论 -
Project ERROR: Unknown module(s) in QT: core gui
采用qmake编译qt工程的时候出现了:Project ERROR: Unknown module(s) in QT: core gui非常纳闷,仔细看了一下,编译的qt中是有上述模块的,更加主要的是我虽然用qtcreater构建工程,但是我并没有使用上述模块,后来排查发现,原来工程中用的第三方库文件路径设置错误了,修改后就好了。...原创 2022-01-20 19:46:10 · 3679 阅读 · 1 评论 -
CICD中clang-tidy静态语义检查
要用clang-tidy首先要在电脑上安装clang-toolsLinux Ubuntu系统sudo apt install clang-tools装好后就可以看到clang-tidy以及其它相关工具了。在你需要检查的文件夹下建立文件.clang-tidy和.clang-format在.clang-tidy中{ Checks: "-*,bugprone-*,cert-*,clang-analyzer-*,cppcoreguidelines-avoid-goto,cppcoreguide原创 2022-01-20 15:58:17 · 4502 阅读 · 0 评论 -
一个编译qt文件qmake 编译脚本案例
编译脚本案例:参考案例:https://blog.csdn.net/worldchinalee/article/details/105269001# Compile and link a Qt project.####################################################### step 1: collect shell argumentsPROMPT=${PROMPT:-"[CI] "}function usage () { echo ${原创 2022-01-19 17:37:51 · 620 阅读 · 0 评论 -
Linux-arm架构下配置qtcreator
QTCreator要想在Linux-arm架构下运行,必须要保证两个:1)qt要在arm下编译生成对应库文件和qmake2) qtCreator 要在arm架构下编译这里主要是要区别qt库和qtcreator,细节可以百度。编译qt可以参考博文:qtarm编译编译好,我们把它放在/opt/qt 下然后安装qtcreator,可以源码或者deb安装,具体资源自己找、安装后,打开Tools->QtVersion,然后Manual 选择刚才的/opt/qt/bin,如何出现无法读取qtco原创 2022-01-17 11:27:09 · 2974 阅读 · 0 评论 -
采用qmake编译qt项目脚本
这个需要自己编译qt,具体编译qt见博客其它内容。# Build Qt project.####################################################### step 1: collect shell argumentsPROMPT=${PROMPT:-"[CI] "}function usage () { echo ${PROMPT}----------------- echo ${PROMPT}"Usage:" echo $原创 2022-01-13 17:42:35 · 427 阅读 · 0 评论 -
麒麟操作系统+龙心 编译qt-arm
收集网址:https://blog.csdn.net/u012020854/article/details/107104441/https://blog.csdn.net/weixin_39864453/article/details/112702456参考二原创 2022-01-13 14:59:36 · 938 阅读 · 0 评论 -
国产麒麟+龙芯编译qt文件c++
最近要把代码移植到麒麟+龙芯上来,因为麒麟操作系统是对ubuntu的二次开发,所以只要把原来的库文件从新在arm架构的计算机上编译一下就可以了。有些库编译的时候会出错,一般来说基本都处在-fPIC这个参数上,编译的时候根据实际情况加上或者减去就可以了。比如libx265就报错:重定位错误,这个时候找到CMakefile.text 将其中的-fPIC加上就好了。当编译你自己的qt文件的时候,可以通过docker来编译,下载:https://registry.hub.docker.com/r/yogoy原创 2022-01-11 15:58:24 · 1123 阅读 · 0 评论 -
shell编程入门知识
1、realpath 获取文件绝对路径kylin@kylin-D2000:~/crystalmedia/scripts$ realpath activeMq_docker.sh /home/kylin/crystalmedia/scripts/activeMq_docker.shkylin@kylin-D2000:~/crystalmedia/scripts$ 2、if语句if主要注意空格,if与[ 然后[]前后各一个空格if [ ! -f "${filename}" ]then ech原创 2022-01-06 16:37:24 · 487 阅读 · 0 评论 -
银河麒麟桌面操作系统安装 postgreSQL13(源码安装)
1、首先下载源码postgreswget http://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz22、解压tar xjvf postgresql-13.1.tar.bz23、进入文件夹cd postgresql-13.1/4、 创建安装路径,一般我们都是安装在/opt/文件夹下面这里一定要用root用户去创建sudo sumkdir -p /opt/pgsql-13.1创建好后一定是root:root原创 2022-01-05 20:08:27 · 4170 阅读 · 1 评论 -
深入理解数据库事务隔离特性
很多同学对数据库事务隔离不是很懂,看了很久好像懂了又好像没懂,我说说我的理解;这里重点强调一点,一定要动手,手动打开sql命令窗口,手动敲命令,一定,一定。首先,什么是事务;一条sql语句算不算事务?只有显示写了begin ,rollback,commit;才算事务吗?一条sql语句就是一个事务,数据库默认begin和commit;显示写了,那句更加是事务了,所以看书的时候只要课本提到事务,你就要明白一条语句也是事务。连接:https://zhuanlan.zhihu.com/p/678085原创 2021-12-29 09:04:13 · 185 阅读 · 0 评论 -
C++类成员变量在内存中的排列顺序(布局)
首先明确几点:1)c++标准要求,在同一个access section(private,protect,public)中members的排列只需要符合较晚出现的members在class object中较高的地址这一条即可。也就是说,members不一定要连续排列,什么东西可以插入到members中间呢,填充padding,以及虚函数表指针。现在很多编译器把虚表指针放在class object的最前端,以前传统方式都是放在显式声明的members的最后喔。class MyClass{public:原创 2021-12-26 17:39:00 · 1893 阅读 · 1 评论 -
C++类大小计算
关于C++类大小计算,这在一本书《深度探索C++对象模型》一书中有非常详细的介绍,我这里归纳整理:本节讨论的是64位地址计算机,指针长度8字节1、类的大小取决于以下成员:a)非静态成员变量;b) 虚函数tablec) 数据对齐d) 空类当然还要考虑单一继承,多继承以及虚拟继承(共享继承)。因为有博主已经写了非常详细的:入口我这里只对博主收尾的虚继承进行进一步讲解:class A { int a; virtual void myfunA(){}//博主原文漏加了这个}原创 2021-12-26 16:32:12 · 542 阅读 · 0 评论 -
关于模板类重载流operator<<
关于模板类重载流operator<<template<class type, int dim>class Point {public: Point() = default; Point(type coord[]) { for (int index = 0; index < dim; index++) { m_coord[index] = coord[index]; } } //拷贝构造 Point(const Point &p) {原创 2021-12-25 15:40:11 · 656 阅读 · 0 评论 -
关于friend函数的用法
friend函数:1、类中函数前面加friend的函数;2、该函数不属于任何对象,其实就是一个全部函数,但是这个全局函数仅仅作用于该类的对象。3、该函数可以访问该类的私有成员变量,公有的更加不用说了。具体我们看一个例子:#include <cstring>#include <stdio.h>class Number {public: Number() = default; Number(int x, int y) : m_x(x), m_y(y) {}原创 2021-12-23 09:45:51 · 1234 阅读 · 0 评论 -
一个简单的CountDownLauch
这个类的主要功能就是,当多个线程运行的时候,count满足一定的条件的时候(这里为0),部分线程才开始工作。具体如下:#include <atomic>#include <condition_variable>#include <mutex>#ifdef __cplusplusextern "C" {#endif#include <pthread.h>#include <unistd.h>#ifdef __cplusplu原创 2021-12-21 09:45:03 · 158 阅读 · 0 评论 -
C++内存布局和内存分配
看了很多,收集若干篇:内存布局1内存布局2内存分配原创 2021-12-19 18:57:52 · 515 阅读 · 0 评论 -
Linux下Ptread_create崩溃问题
今天写了一个简单的Pthread函数在Linux Ubuntu20.4中qt运行,结果一运行就崩溃,百思不得其解,代码如下:#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>void *printMsg(void *msg) { printf("msg is:%s", (char *)msg)原创 2021-12-17 10:20:04 · 1014 阅读 · 0 评论 -
模板元编程-模板特例化
在模板元编程里面,有一种情况是模板特例化,就是你定义了一个模板类,并且专门为它写了一些特例,如下://定义了一个模板类Vectemplate <class T, int N> class Vec {public: Vec() { std::cout << "zero" << std::endl; }private: T m_arr[N];};//特别注意这个特例化版本,template <> class Vec<int, 4>原创 2021-12-14 09:20:33 · 420 阅读 · 0 评论 -
c++编程小技巧-1
代码上:class FrameWriterInterface {public: typedef std::shared_ptr<FrameWriterInterface> Ptr; FrameWriterInterface(){} virtual ~FrameWriterInterface(){} /** * 写入帧数据 */ virtual void inputFrame(const Frame::Ptr &frame)原创 2021-03-25 10:48:45 · 148 阅读 · 0 评论 -
vim以及插件命令
3、NERDTree命令简介和编辑文件一样,通过h j k l移动光标定位切换工作台和目录 ctr+w+h 光标focus左侧树形目录,ctrl+w+l 光标focus右侧文件显示窗口。 ctrl+w+w,光标自动在左右侧窗口切换o 打开关闭文件或者目录,如果是文件的话,光标出现在打开的文件中 go 效果同上,不过光标保持在文件目录里,类似预览文件内容的功...原创 2020-01-02 10:08:58 · 299 阅读 · 0 评论 -
Ubuntu -vim -you completeme
https://blog.csdn.net/u013475704/article/details/52295157/this blog is perfecthttps://segmentfault.com/a/1190000003795535https://blog.csdn.net/silinga/article/details/80059006three is enougth原创 2019-12-31 15:13:31 · 337 阅读 · 1 评论