分类 Linux 下的文章

现今绝大多数计算机都是用的是64位系统了,于是默认生成的代码的target也是64位的。 可是。。模拟器只支持32位的指令集,于是只能想办法生成32位的代码。

MIPS:

mips-img-elf-gcc -march=mips32 -mno-local-sdata ...

https://reviews.llvm.org/D4903?id=12672#inline-47153 这里提到了%gp_rel的功能,但是并看不懂 通过-mno-local-sdata使得编译时不生成该标识符。(还是模拟器不支持)

RISC-V: 需要通过编译的时候指定目标架构。 方法之一是只生成32位的编译器:

./configure --prefix=/path/to/installation --with-arch=rv32gc --with-abi=ilp32

似乎还可以通过--enable-multilib的方法在编译程序时指定。(未研究)

补充一个操作:

gcc -E -march=help -xc /dev/null

https://stackoverflow.com/questions/47299458/how-can-i-determine-what-architectures-gcc-supports 使用该命令,版本较新的gcc会把支持的架构作为报错信息输出来。 原作者说的最低版本是gcc7,但是我的gcc6.4也能用

大概是ld没配置好的原因

ld的配置文件环境里加入以下几行:

/usr/local/lib64
/usr/local/lib
/usr/lib64
/usr/lib

推荐在/etc/ld.so.conf.d/里新建一个conf文件,然后写入以上几行 (在下用的是Intel C Compiler, 故取icc.conf

然后ldconfig -v重新配置动态链接库即可。

在bash中可以使用转义字符来显示不同的颜色。

<ESC>[{attr};{fg};{bg}m

其中为ESC键对应的转义字符,可用的表达方式有\e\033^[三种

在vi中输入该字符的方式: i进入编辑模式->Ctrl+V->ESC键

应该会出现一个与文本颜色不同的^[字符,此时输入成功

{attr} needs to be one of the following: 0 Reset All Attributes (return to normal mode) 重置特效 1 Bright (usually turns on BOLD) 加亮(显示效果通常为加粗) 2 Dim 变淡 3 Underline 下划线 5 Blink キラキラ~ 7 Reverse 前景/背景色交换 8 Hidden (emm暂时没看出来) {fg} needs to be one of the following: 前景色 30 Black 31 Red 32 Green 33 Yellow 34 Blue 35 Magenta 36 Cyan 37 White {bg} needs to be one of the following: 背景色 40 Black 41 Red 42 Green 43 Yellow 44 Blue 45 Magenta 46 Cyan 47 White

通过/etc/motd (mESSAGE oF tOdAY)可以展示有意思的登陆提示信息。

参考: https://www.linuxjournal.com/article/8603

使用的是vg和lvm系列的命令,大概vg=Volume Group, LVM=Logical Volume Manager?

扫描lvm卷组

vgscan

扫描lvm卷

lvscan

两者显示详细信息的命令分别对应为vgdisplaylvdisplay

激活卷组

sudo vgchange -ay <vg-name>

取消激活

sudo vgchange -an <vg-name>

经过vgchange激活的卷组可以通过mount/dev/<vg-name>/<volume-name>直接挂载。