linux
wangw8507
长沙梅溪湖
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QT中使用DBUS
D-Bus和QT本文以一个实作为例,介绍D-Bus在QT下的绑定。在实作中,我们会在Session Bus上注册一个HotelService,通过这个Service,可以实现check in,check out以及query的动作。为避免歧义,本文对D-Bus中的一些关键术语的表述依然采用英文。这些术语包括:D-Bus, IPC, Message,Message Bus, System Bus, Session Bus, Service, Object, Method, Signal, In..转载 2022-05-13 09:02:33 · 1518 阅读 · 0 评论 -
打开文件夹并选定指定的文件
Windows下:explorer /select,E:\\file.txtLinux下(通过Dbus):参考网址:freedesktop.org QDBusConnection bus = QDBusConnection::sessionBus(); QDBusInterface dbus_iface("org.freedesktop.FileManager1", "/org/freedesktop/File.原创 2022-05-12 19:15:15 · 858 阅读 · 0 评论 -
Linux(Ubuntu)上给指定类型文件加上右键打开程序列表
首先需要为程序创建一个.desktop文件 (此步骤自行度娘!~)使用Exec=命令 %U添加,%U作用是传递多个URL,本地文件可以作为文件URL或作为文件路径传递。具体以pluma举例子:文件:/usr/share/applications/pluma.desktop,里面的字段Exec=pluma %U,MimeType=text/plain;表示text/plain类型的文件默认右键“打开方式”有pluma应用。如果修改Exec=pluma,则新打开的text/plain类型的文件默认右原创 2022-05-11 15:19:23 · 1252 阅读 · 0 评论 -
GCC下设置调试信息级别
gcc的-g选项可以在编译时生成调试信息,便于调试器对程序进行调试。通过分离程序,可以把调试信息从模块中分离出来形成单独的调试信息文件,类似于VS的pdb文件。gcc的调试信息可以设置生成级别,对应的参数为-glevel. level可以为0,1,2,3,级别越高,体积越大。Level0:0不生成调试信息Level1:只生成最小调试信息,不包含局部变量的调试信息Level2:则会生成比较多的调试信息,但是对应的文件体积会比级别1大很多。 默认值为2Level3:会生成扩展...原创 2022-02-26 16:54:03 · 1745 阅读 · 0 评论 -
不是所有的token在宏定义中都可以使用##连接
我定义了下面几个宏:#define CONNAT(a, b) CONNAT_IMPL(a, b)#define CONNAT_IMPL(a, b) a##b#define STR(s) STR_IMPL(s)#define STR_IMPL(s) #s然后再代码中使用:std::string str = STR(CONNAT(/home/boy/, zz));我的本意是想得到一个字符串"/home/boy/zz"但是GCC编译器给出了编译错误:error: pasting原创 2022-01-13 14:26:31 · 907 阅读 · 0 评论 -
Linux下GCC/G++编译出来的可执行程序无法双击运行
查看可执行文件,发现文件属性是shared library,而不是executable,导致这种情况的原因就是g++默认使用了-fpie参数。什么是pie?PIE(position-independent executable)是一种生成地址无关可执行程序的技术。如果编译器在生成可执行程序的过程中使用了PIE,那么当可执行程序被加载到内存中时其加载地址存在不可预知性。PIE还有个孪生兄弟PIC(position-independent code)。其作用和PIE相同,都是使被编译后的程序能够随原创 2021-12-09 18:44:06 · 2904 阅读 · 0 评论
分享