
linux
雨田嘟嘟
这个作者很懒,什么都没留下…
展开
-
生成可视化的图形gprof2dot.py
生成可视化的图形生成可视化的图形需要下载gprof2dot:gprof2dot · PyPIgprof2dot · PyPIGenerate a dot graph from the output of several profilers.https://pypi.org/project/gprof2dot/#files这是个Python脚本,下载之后解压,确认gprof2dot.py有运行权限,并把这个脚本添加到$PATH路径中的任一文件夹下,我是在/usr/bin目录下创建了它...原创 2022-04-28 18:45:13 · 1829 阅读 · 1 评论 -
release elf,调试信息分离
release elf,调试信息分离原创 2022-04-28 09:54:35 · 1390 阅读 · 0 评论 -
gcc cppreference
gcc.gnu.orghttps://gcc.gnu.org/https://gcc.gnu.org/onlinedocs/gcc手册 (比如可以查找attribute 相关介绍)https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/gcc 编译选项(比如fPIC Wall)https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/Option-Index.html#Option-Indexhttps://gcc.gnu.原创 2022-03-15 10:27:53 · 1199 阅读 · 0 评论 -
gcc 编译参数 so查找路径
基本的命令把一个源文件,编译成可执行文件,经过了预处理、汇编、编译与链接。-E: 对目标文件只进行预处理,生成的还是源码。例如:g++ -Etest.cpp -o test.i-S: 对目标文件进行预处理、编译操作,生成汇编代码。例如:g++ -S test.cpp -o test.s-o: 对目标文件进行预处理、编译和汇编操作,生效obj文件。例如:g++ -c test.cpp -o test.o-fsyntax-only : 对代码只进行语法检查,不做其它任何动作。.原创 2022-03-12 23:16:01 · 5095 阅读 · 0 评论 -
文件类型快速判定(Magic Number)
后缀名判断文件类型十分不准确, 并且linux上也不需要有文件后缀, 我们如何判断文件类型呢.比如使用bash 命令 filefile logo.pnglogo.png: MS Windows icon resource - 7 icons, 16x16, 16 colors, 4 bits/pixel, 16x16, 8 bits/pixel我们可以读取文件的头部二进制数据根据这前几位来判断是什么类型00000000: 0000 0100 0700 1010 1...原创 2022-01-26 18:21:39 · 1344 阅读 · 0 评论 -
d-bus配置文件
启动D-Bus服务进程可以按需要启动对应服务。有两种启动方式,它们都需要请求服务的客户提供要连接的公共名:1. 使用总线对象所提供的方法2. 使用连接公共名,直接调用目标连接上的对象方法要建立可以自动启动的服务,需要设置服务配置文件。服务配置以UTF-8文本形式存放在.service文件中。比如com.xl.safe.service(文件名是任意的,但必须以.service结尾,放到目录/usr/share/dbus-1/services下文件格式如下:[D-BUS Service]原创 2021-12-20 11:53:49 · 2124 阅读 · 0 评论 -
root用户启动后,用户名显示1000
软件安装后,postinst启动,这个时候用户权限是root,但是启动之后的程序用户名确是1000, 而本台机器上没用1000的用户名,也没有1000的uid. 很奇怪.关闭程序后,手动以root用户启动后, 查看用户名还是1000. 原来是:制作安装包时安装包文件夹的用户名和组没有修改为root, 安装后安装目录的用户名和组都是异常的1000,也就是安装路径文件夹以及文件所属的用户名和组不是root造成的.sudo chown root:root 目录 -R然后再次启动就正常了...原创 2021-12-20 11:53:16 · 2253 阅读 · 1 评论 -
mv: error while loading shared libraries: libc.so.6
想把libc.so换成低版本的测试下程序反应,mv /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6_bk然后就全部ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directorymv: error while loading shared libraries..原创 2021-08-02 17:42:49 · 889 阅读 · 0 评论 -
Qt鼠标穿透
设置方法// 一定要先设置鼠标穿透,否则无法穿透,应该是属性中间有值影响setAttribute(Qt::WA_TransparentForMouseEvents, true);setWindowFlag(Qt::FramelessWindowHint);setAttribute(Qt::WA_TranslucentBackground, true);入坑// 一定要先设置鼠标穿透,否则无法穿透,此代码窗口无法穿透setWindowFlag(Qt::FramelessWindowHi..原创 2021-06-15 10:29:58 · 4627 阅读 · 0 评论 -
托盘显示
deepin上遇到 failed to register service "org.kde.StatusNotifierItem-14530-2"然后托盘一直不显示图标,直到重启系统。原因是啥呢?后来再也没遇到。原创 2021-04-28 17:16:19 · 324 阅读 · 0 评论 -
sw 浮点数例外
sw421编译选项添加 -mieee原创 2021-04-26 18:14:43 · 222 阅读 · 0 评论 -
qt标准对话框翻译
在 deepin/uos上调用静态函数可以调用系统的本地对话框,调用类对象调用内置的对话框。但是在kylin上都不能调用本地对话框,这样的话窗口上的文字就是英文的。QT内部类QFontDialog、QColorDialog、QMessageBox、QLineEdit和QTextEdit的右键菜单等中的文字默认是英文的。对于这个问题,加载一个翻译文件就行。Qt已经为我们准备好了,在"安装目录/translations/qt_zh_CN.qm这个文件QApplication...原创 2021-03-29 15:00:43 · 490 阅读 · 0 评论 -
bash -x输出到logfile
#! /bin/bashlogfile=/var/log/xltest.logecho `date` >> ${logfile} 2>&1echo postinst arg:$1 >> ${logfile} 2>&1exec {BASH_XTRACEFD}>>${logfile} #//bash -x输出到logfileexec 1>>${logfile} #//标准输出到文件exec 2>&g..原创 2021-03-29 11:52:55 · 926 阅读 · 0 评论 -
C++ Standards Support in GCC
C++ Standards Support in GCChttps://gcc.gnu.org/projects/cxx-status.htmlGCC 4.8.1 was the first feature-complete implementation of the 2011 C++ standard, previously known as C++0x.This mode can be selected with the-std=c++11command-line fl...原创 2021-01-23 22:50:56 · 141 阅读 · 0 评论 -
qt菜单问题
国产系统下实际项目中遇到的问题。Qt4中需要给托盘设置上下文菜单,并且不能为空,否则会出现崩溃。而在Qt5中,如果要响应activated(QSystemTrayIcon::ActivationReason)中的QSystemTrayIcon::Context,那么就不能设置上下文菜单,否则将会直接调用菜单,菜单中的QWidgetAction将会不显示。#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) //小于5.0版本需要设置 if (NU...原创 2021-01-11 16:43:55 · 247 阅读 · 0 评论 -
窗口置顶
使用setWindowFlags接口设置窗口的WindowStaysOnTopHint属性实现置顶操作。WindowStaysOnBottomHin置底操作setWindowFlags(windowFlags()| Qt::WindowStaysOnTopHint);在X11上的一些窗口管理器上,您还必须传递Qt::X11BypassWindowManagerHint,以使此标志正确工作。setWindowFlags(Qt::FramelessWindowHint | Qt::Window.原创 2020-12-21 19:18:06 · 575 阅读 · 0 评论 -
sqlite3_bind
sqlite3_bind_text 中绑定的指针,在sqlite3_step 时必须存在,不能释放,否则会是乱码sqlite3_bind_blob中绑定的指针,在sqlite3_step 时必须存在,不能释放,否则会是乱码sqlite3_bind_int 、sqlite3_bind_double绑定临时变量是可以的,因为传的是值void test_parameter_binding() {//1. 不带参数绑定的情况下插入多条数据。char strSQL[128];fo...原创 2020-12-21 14:29:55 · 3039 阅读 · 0 评论 -
sudo qt程序中文输入
linux下 sudo启动qt程序无法输入中文处理方式,右键菜单 select IM 两个选项 fcitx、XIM第一种apt-get安装fcitx包,中文输入法在fcitx模式下输入中文,此种方法需要安装fcitx。xulei@xulei-PC:/etc/sudoers.d$ apt-cache search fcitx-libs-qtfcitx-libs-qt - transitional dummy packagefcitx-libs-qt5 - transitional...原创 2020-11-24 15:58:14 · 592 阅读 · 0 评论 -
qt窗口显示问题
首先,在QT中对于窗口显示常用的有这么几个方法可以调用:但是有些时候是失效的。Qt全屏显示函数showFullScreen()Qt最大化显示函数 showMaximized()Qt最小化显示函数 showMinimized()Qt固定尺寸显示函数resize(x,y)Qt设置最大尺寸函数setMaximumSize(w,h)Qt设置最小尺寸函数 setMinimumSize(w,h)但是sh...原创 2020-10-01 17:45:11 · 2300 阅读 · 0 评论 -
普通程序以root启动的运行方法
root身份(或者更一般地说,作为另一个用户)以图形方式运行应用程序。sudogksu,gksudo和kdesudo这样的程序是sudo的图形前端。 可以启动图形界面程序pkexec是PolicyKit的图形前端。 不能启动图形界面程序https://ubuntuqa.com/article/977.html...原创 2020-05-14 14:40:04 · 2051 阅读 · 0 评论 -
gnome菜单图标显示
国产操作系统deepin uos都是gnome为基础的,默认菜单里面不显示图标。这是因为他们基础gnome,而GNOME从2.28之后,按钮和菜单中的图标默认不再显示。如果要显示,可以使用下面方法进行修改gconf(以普通用戶的身份执行)进行显示:一、使用命令gconftool-2 --type boolean --set /desktop/gnome/interfa...原创 2020-04-15 10:40:03 · 1151 阅读 · 1 评论 -
defenderui:16801): Gtk-WARNING **: 14:50:01.129: 无法在模块路径中找到主题引擎:“adwaita”
Gtk-WARNING不影响程序运行,安装gnome-themes-standard就好了。PC:~$ sudo apt-get install gnome-themes-standardPC:~$ sudo apt-cache search gnome-themes-standard gnome-themes-standard - Adwaita GTK+ 2 t...原创 2019-11-08 14:58:12 · 983 阅读 · 0 评论 -
Linux下使用system函数一定要谨慎
https://my.oschina.net/renhc/blog/53580https://my.oschina.net/renhc/blog/54582曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入。只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值、它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点。当初因为这个函...转载 2019-10-24 11:34:10 · 1950 阅读 · 0 评论 -
linux .bin安装包制作
linux 安装包制作1、打包或压缩文件tar,zip,gz等,解压后即可,或者解压后运行sh文件;太简单。。。感觉不正式 2、使用管理工具的deb,rpm等,通常的这类安装文件可以通过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm;制作起来比较复查,还不通用。 3、像.bin类,把shell和压缩包合成一个文件,可以直接在linux原创 2017-10-25 09:33:42 · 5536 阅读 · 2 评论 -
ntpd
Linux的NTP配置总结转载2015-08-20 12:29 by 潇湘隐者, 55661 阅读, 6 评论, 收藏, 编辑在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务来同步不同机器的时间。NTP 是网络时间协议(Network Tim转载 2017-11-06 17:26:29 · 9190 阅读 · 0 评论 -
jsoncpp
写了个webserver,同事要求用json解析。之前用过JsonCpp,现在都忘了,现在记录一下解析json串。 使用跨平台的开源库JsonCpp来解析Json。 1、下载jsoncpp下载地址: https://github.com/open-source-parsers/jsoncpp2、使用Jsoncpp包中的.cpp和.h文件解压上面下载的jsoncpp-master.zip文件,把原创 2017-10-18 16:45:20 · 787 阅读 · 0 评论 -
epel
找不到jq的源,看到一篇博客,转记一下EPEL 是yum的一个软件源,里面包含了许多基本源里没有的软件 一、EPEL是企业版 Linux 附加软件包的简称,EPEL是一个由Fedora特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目转载 2017-11-06 16:18:48 · 438 阅读 · 0 评论 -
使ssh不用输入密码
有些时候,我们在复制/移动文件到另一台机器时会用到scp,因为它比较安全。但如果每次都要输入密码,就比较烦了,尤其是在script里。不过,ssh有另一种用密钥对来验证的方式。下面写出我生成密匙对的过程,供大家参考。第一步:生成密匙对,我用的是rsa的密钥。使用命令 “ssh-keygen -t rsa” [user1@rh user1]$ ssh-keygen -t rsa Genera转载 2017-10-11 09:39:03 · 6674 阅读 · 0 评论 -
shell队列实现线程并发控制
请看原文http://egon09.blog.51cto.com/9161406/1754317需求:并发检测1000台web服务器状态(或者并发为1000台web服务器分发文件等)如何用shell实现?方案一:(这应该是大多数人都第一时间想到的方法吧)思路:一个for循环1000次,顺序执行1000次任务。#!/bin/bashstart_time=`date +%s` #定义脚本运行的开始时转载 2017-10-20 10:15:56 · 1131 阅读 · 0 评论 -
pthread
本篇转至:http://www.cnblogs.com/zhangxuan/p/6430034.html 另一篇Linux多线程编程小结写的很好,值得参考。 再一篇在Linux中使用线程int pthread_join(pthread_t thread, void **retval);int pthread_detach(pthread_t thread);void pthread_exit(v转载 2017-10-19 16:19:29 · 332 阅读 · 0 评论 -
Linux命令行编辑快捷键
Linux命令行编辑快捷键:history 显示命令历史列表↑(Ctrl+p) 显示上一条命令↓(Ctrl+n) 显示下一条命令!num 执行命令历史列表的第num条命令!! 执行上一条命令!?string? 执行含有string字符串的最新命令Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令Ctrl+s 与Ctrl+r类似,只是正向检索Alt+转载 2017-10-10 15:48:34 · 529 阅读 · 0 评论 -
makefile vpath
使用vpath和VPATH比在.o前面加路径方便多了。 vpath使用文件目录结构├── log│ ├── bar.c│ ├── bar.h│ ├── test.c│ └── test.h└── test ├── Makefile ├── include │ └─── foo.h └── src ├─原创 2017-10-09 16:40:49 · 696 阅读 · 0 评论 -
linux 静态库和共享库
1、静态库和共享库 静态库和共享库(动态库),二者的不同点在于代码被载入的时刻不同。 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。 共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。静态链接库和动态链接库的区别在于,主程序在运行前,静态链接库的链接固定写入在程序中,而动态链接库则是在每次程序运行再加载链接。2、库存在的意义 库是别原创 2017-10-09 14:47:04 · 296 阅读 · 0 评论 -
gcc 参数
网上很多这种帖子,也不知道哪个是原贴了。 写下来记录一下 我们用gcc编译程序时,常常会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:-I:指定第一个寻找头文件的目录-L:指定第一个寻找库文件的目录-l:表示在库文件目录中寻找指定的动态库文件gcc -o hello hello.c -I/home/hello/include -L/home/hell原创 2017-10-09 14:20:52 · 420 阅读 · 0 评论 -
如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测
centos 上安装 valgrind :yum install valgrind转原文: http://www.oschina.net/translate/valgrind-memcheck 参与翻译 (3人) : 一条大河波浪宽, mingshun, Ley 英文原文 http://www.thegeekstuff.com/2011/11/valgrind-memcheck/系统编程中一转载 2017-10-17 16:42:30 · 1660 阅读 · 0 评论 -
fileformat set
在windows下新建的sh文件,copy到linux下有的会报错,一般是格式问题。使用vim进行一下文件格式fileformat转换可使用fileformat或简写ffset ff 或 set ff? #显示当前文件格式set fileformat=unix 或 set ff=unix #设置成unix格式set ff=dos #设置成dos格式dos格式文件传输到unix系统时...原创 2018-01-10 14:28:36 · 7471 阅读 · 0 评论 -
rpm打包方法
bash build.sh然后产生在RPMS/mips64el下.目录结构如下#tree ..|-- BUILD|-- BUILDROOT|-- RPMS| |-- mips64el| `-- 123est-1.0.0-1001.mips64el.rpm|-- SOURCES|-- SPECS| `-- 123test.spec|-- SR...原创 2019-09-20 18:46:43 · 814 阅读 · 1 评论 -
gdb coredump概述
gdb coredump进程崩溃的时候,coredump文件会将进程的内存映像以及寄存器、堆栈指针等信息保存下来以便使用gdb 调试分析。1. coredump文件生成开关ulimit -c0 代表 关闭coredump文件生成开关。可通过ulimit -c filesize/unlimited进行设置,其中filesize设置过小,使用gdb调试相应的coredump文件时会...原创 2019-09-20 17:18:39 · 320 阅读 · 0 评论 -
git使用记录
oh-my-zsh初始化(init)初始化工作目录,使之能够被git管理。会生成子目录“.git”.$ git init配置(config)可以在配置文件.gitconfig中设置,配置文件一般在用户的HOME路径下。也可以通过命令行设置,如$ git config --global user.email 邮箱机制$ git config --global user.name ...原创 2019-07-15 11:36:16 · 147 阅读 · 0 评论 -
gdb调试断点不生效问题
写了个http客户端,gdb调试的时候在传入参数中含有& 符号时,程序直接执行,而不进入任何断点。不知道什么原因。gdb 调试clienthttp程序,在入口函数main处添加断点,(其他处添加也无效)gdb clienthttp(gdb) b main(gdb) i bNum Type Disp Enb Address What1 ...原创 2018-03-14 15:48:43 · 13554 阅读 · 2 评论