Linux个人踩坑

Published: by Creative Commons Licence

  • Tags:

前言

最近脑子一抽,想要装个ubuntu系统。下面是自己的踩坑记录。

让生活变得更加美好

增加应用程序图标

用户的应用程序信息都记录在/user/share/applications/*.desktop~/.local/share/applications/*.desktop中。前者用于存放对所有用户可用的程序,而后者则存放仅当前用户可用的桌面程序。

我们复制一份文件,并修改成我们需要的样子。

[Desktop Entry]
Name=postman
Type=Application
Exec=/opt/Postman/Postman
Terminal=false
Icon=/opt/Postman/app/resources/app/assets/icon.png
Comment=windows tool for http request
NoDisplay=false
Categories=Development
Name[en]=Postman

之后浏览一些应用程序,会发现出现了Postman这个应用。

想要了解每个字段的具体含义,可以浏览这个页面

C++相关

栈溢出问题

最近写了个程序,在函数中创建大对象,栈溢出了。

一开始找的方法是,加入编译参数:

g++ ... -Wl,--stack,1000000000

但是由于我用的是linux系统,没有生效。下面的方法有效:

ulimit -s unlimited

但是上面的方法仅对当前的shell有效,所以我把它加入到了~/.bashrc中。

编译和运行时检测

通过下面参数可以开启很多的编译运行时越界检测:

g++ ... -Wall -pedantic -std=c++17 -O2 -Wshadow -Wformat=2 -Wfloat-equal -Wconversion -Wlogical-op -Wshift-overflow=2 -Wduplicated-cond -Wcast-qual -Wcast-align -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC -D_FORTIFY_SOURCE=2 -fsanitize=address  -fno-sanitize-recover -fstack-protector -fsanitize=undefined