我希望在libc.so.6文件中看到包括printf在内的符号数。我使用nm工具找到它们,但是它说 libc.so.6 中没有符号。
交叉编译 Linux 内核 3.18.10 时,编译器会.part.<N>
在某些符号的末尾添加后缀(参见下面的示例)。<N>
使用不同的 defconfigs 时,数字会发生变化。有人知道在什么条件下编译器会在符号末尾添加零件后缀吗?
$ arm-none-linux-gnueabi-readelf -a vmlinux | grep do_kernel_fault
给
c03a48f8 116 FUNC LOCAL DEFAULT 2 __do_kernel_fault.part.10
您还可以选择控制符号的 ELF 可见性。只需添加可见性关键字之一:
default
、internal
、hidden
或protected
。default
当然是默认的。
这些是在哪里定义的?以及如何ld
使用它们?我看到C++ 中经常提到的访问级别包括protected、public和 private,但我不知道这是否是 ELF 所引用的?
我的用例是 C 和汇编,因此如果您能让这与这两种语言和链接器相关,那就加分了。
enscript
在将 txt 转换为 pdf 时,我无法弄清楚如何处理重音:
echo "élisée" | enscript -o - -X <encoding> | ps2pdf - output.pdf
Run Code Online (Sandbox Code Playgroud)
我尝试了所有可能的编码,但都没有导致正确的结果。
我想我应该在第一个标准输出中添加一个 iconv
我尝试过的 enscript 编码列表: