c – SYSV与Linux / GNU ELF格式

问题是在以下问题的背景下:Why are libraries not found, even though they are clearly on the -L path?.我的库和我的目标文件似乎有不同的ELF格式,这可能导致链接器无法“找到”库.现在,这导致了几个问题:似乎我的编译器通常会生成SYSV ELF文件. (检查文

linux – 为什么gcc在调用“main”之后在程序中放置一个“halt”指令?

当在 Linux / i386系统上看到由gcc生成的精灵可执行文件时,似乎在调用“main”之后,在“nop”填充之前,它会放置一个停止指令(0xf4),例如: │ ……. ! entrypoint:│ ……. ! xor ebp, ebp│ 80482e2 ! pop esi│ 80482e3 ! mov ecx

linux – GCC详细模式输出说明

我是 linux的新手.任何人可以向我解释我的hello world程序的以下详细模式输出?此外,文件crt1.o,crti.o,crtend.o,crtbegin.o和crtn.o和lc和lgcc会做什么?任何其他解释性的联系也是欢迎的. $gcc -v hello.cReading specs from /usr/lib/gcc-lib/i686/3.3.1/sp

linux – GCC处理不同优化级别的浮点数比较

我有一些简单的代码比较两个浮点值,以说明我在GCC优化中看到的问题,并希望有人可以帮我弄清楚为什么它产生的输出在某些可重复的情况下是不同的. 首先,我知道将浮点值与==进行比较是不好的,因为你可以在尾数中关闭一些非常小的数量,但在我的例子中并非如此.我

linux / gcc:来自C/C++程序的ldd功能

是否有一种简单有效的方法可以知道给定的动态链接ELF是否缺少必需的.so来运行,所有这些都来自C/C++程序的内部? 我需要一个与ldd具有某些相似功能的程序,而不是试图执行ELF来找出系统中的(met / unmet)依赖项.也许通过一些库询问ld-linux.so实用程序? (我是

嵌入式 – arm-linux-gcc vs arm-elf-gcc

我正在寻找使用arm- linux-xxx构建内核的uClinux系统,但使用arm-elf-xxx构建用户应用程序. 如果应用程序打算在linux上运行,使用arm-linux-xxx构建所有内容会不会更好? 在整个uClinux构建配置中,哪一个设置了该选项? 编译器的名称并不一定意味着什么.根据谁

使用gold vs ld链接器时使用的glibc/pthreads中的不同符号

我有一个简单的测试程序调用pthread_cond_broadcast.与ld链接器链接时,显示:情况1:$nm ld-test | grep cond_broadcast U pthread_cond_broadcast@@GLIBC_2.3.2 当与黄金链接器链接时,它显示:案例2: $nm gold-test | grep cond_broadca

如何在二进制执行期间挂钩所有linux系统调用

我试图修改linux系统调用的默认行为.目前我正试图在实际调用它们之前挂钩并添加一个简单的print语句.我知道GCC链接器的标准wrap选项以及它如何用于挂钩包装器Link to GCC Linker options.这完全适用于open(),fstat(),fwrite()等(我实际上挂钩了libc包装器).更

C/C++裸机编译和特定操作系统(Linux)编译之间有什么区别?

假设您有一个交叉编译工具链,它为ARM体系结构生成二进制文件.您的工具链是这样的(在使用Linux的X86_64机器上运行): arm-linux-gnueabi-gcc.exe:用于Linux的交叉编译,在ARM上运行. arm-gcc.exe:用于针对ARM的裸机交叉编译….以及用于ARM交叉编译的大量其他

-fstack-protector,-fstack-protector-all和-fmudflap

-fstack-protector和-fstack-protector-all是保护基于堆的内存分配还是仅保护基于堆栈的内存分配?前2和-fmudflap有什么区别?关于哪个更适合调试的任何建议?(我不确定gcc man page是否足够清楚,或者我根本不理解……)char foobar[10]; // stack-based cha

返回顶部