Linux个人踩坑
前言
最近脑子一抽,想要装个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