glibc相关内容
我想知道是否有可以从gcc / g ++中使用的glibc函数来检索当前的可执行文件。 这样做的目的是提供如 addr2line 的-e参数 - 从程序到打印 - 它的堆栈跟踪/ 4611112#4611112“>这个答案 解决方案 标准C和glibc,你有argv [0]: pre $ int c main int $ b argv 数组的第一个元素是程序名称。
..
运行时 arm-none-linux-gnueabi-gcc -print-search-dirs | grep库| sed's /:/ \ n / g' 我得到以下输出: 库 = / opt / codesourcery / lib / gcc / arm-none-linux-gnueabi / 4.4.1 / /opt/codesourcery/lib/
..
我有一个关于libstdc ++的问题。so。 我安装了一个新版本的gcc并试图编译c ++代码。编译工作,但当我尝试执行二进制文件(m5.opt是它的名字)时,我得到了以下错误: build / ALPHA_SE / m5.opt:/usr/lib64/libstdc++.so.6 :版本'GLIBCXX_3.4.9'找不到(需要build / ALPHA_SE / m5.opt)。
..
我正在编译glibc库。在我这样做之前,我需要运行 configure 。但是,为了编译glibc,我需要使用不是机器上默认编译器的gcc编译器。 手册说明了以下内容。 运行configure时,在环境 中设置CC和CFLAGS变量也很有用。 CC选择将要使用的C编译器,而CFLAGS 为编译器设置优化选项。 现在我的问题是我没有该机器上的任何管理权限。那么我怎样才能使用
..
我对开源和许可证有基本的理解问题。有人可能请澄清以下情况的一些问题。对不起,如果它是非常基本的 我正在编写一个专有软件,我计划使用一些开源库。我还需要glibc和一个C编译器,但不希望从我的操作系统使用默认的gcc工具链,所以使用crosstools-ng构建我自己的工具链 现在在ct-ng中,我猜libstdc ++库是静态链接的(这对于c ++来说并且我不会在大多数情况下使用它),
..
阅读 scanf 手册我遇到下面这行: 米'字符。这与字符串转换一起使用 (%s,%c,%[), 例子说明了在某些情况下这种选择的不同和需要? C标准没有在 scanf() $ c $>格式。 GNU lib C以这种方式定义了可选的 a 指标 scanf ): 可选的 a 字符。这与字符串转换一起使用,并且减轻了调用者分配相应缓冲区以保存输入的需要:相反, scanf(
..
实际上,Linux上的 -static gcc标志现在不起作用。让我引用GNU libc FAQ: 2.22。即使静态链接的程序也需要一些共享库 ,这对我来说是不可接受的。 我可以做什么? {AJ} NSS(详情请输入'info libc'Name Service Switch'' )如果没有共享的 库, 不会正常工作。 NSS允许通过只更改一个配置 文件(/etc/nss
..
当我在Ubuntu Lucid 10.04 PC上编译一些内容时,它会与glibc链接。 Lucid使用2.11的glibc。当我在另一台装有旧版glibc的PC上运行这个二进制文件时,该命令失败,说没有glibc 2.11 ... 据我所知,glibc使用符号版本控制。我可以强制gcc链接到特定的符号版本吗? 在我的具体使用中,我尝试为ARM编译一个gcc交叉工具链。 解决方案
..
单个主机上有多个glibc库 我的linux(SLES-8)服务器目前有glibc-2.2.5-235,但我有一个程序赢得了在这个版本上工作并且需要glibc-2.3.3。 是否可以在同一个主机上安装多个glibcs? 这是我在旧glibc上运行程序时得到的错误: ./ myapp :/lib/i686/libc.so.6:未找到'GLIBC_2.3'版本(必需的./
..
我试图用glibc静态链接我的程序,因为目标机器上的glibc版本几乎不可预知。我使用链接器标志-static-libgcc和-static-libstdc ++,它工作正常。可执行文件很大,但我可以忍受它。不幸的是,当我在目标机器上运行我的可执行文件(它在下面的例子中被命名为'mytest')时,出现以下错误: ./ mytest:/usr/lib64/libstdc++.so.6:找不
..
我如何获得POSIX strerror_r 而不是GNU版本? 我在Ubuntu 8.04上用g ++编译,用glibc 2.7版本(基于内容)。 编辑 在上面的手册页上,它说: glibc的功能测试宏要求(请参阅feature_test_macros(7)): $ b 符合XSI的版本strerror_r ): (_POSIX_C_SOURCE> = 200112L
..
我目前遇到了一个问题,我得到了 ***检测到了glibc *** ./efit:free():invalid下一个大小(快):0x00000000006127f0 *** 与通常的内存映射和回溯信息一起提供 glibc 错误。然而,我无法找到这个问题的原因。这似乎(基本上)我的整个程序是在这种情况发生的时候完成的。我在网上阅读的一件事是,这可能是由于缺乏解除分配。现在,我一直在运行该程
..
HP-UX的libc具有 fesetflushtozero 来切换“渐变下溢”和“变为零”之间的浮点行为。 解决方案 正如你无疑指出的那样,这样做(就此而言,没有“清零”的标准定义,也没有硬件实现的任何要求)。因此,所有这些做法都是针对平台的。要添加一些更多的名单,因为这是一个有用的参考: OSX / Intel: fesetenv(_FE_DFL_DISABLE_SSE_DENORM
..
我正在从 sqrt 函数(对于64位双精度) “rel =”nofollow“> fdlibm 到我目前正在使用的模型检查器工具( cbmc )。 作为我的一部分,我阅读了很多关于ieee-754标准,但是我认为我不了解基本操作的精度保证(包括ieee-754)。开方)。 测试我的fdlibm的sqrt端口,我在64位双精度上用sqrt计算了以下值: SQRT(1977061516
..
在Linux 2.6内核和NFSv3中,当 open(“fname”,O_CREAT | O_EXCL)有效时,当前规范打开(2)系统调用文档( http://www.kernel.org/doc/man-pages/online/pages/man2/open.2.html )说一切都很好: - O_EXCL - ... 在NFS上,仅在使用NFSv3时才支持O_EXCL或
..
一个普通的脚本(公司的代码,源码就不放了),里面大概会运行一千个子进程,然后我 ltrace -c -f 上去想看一下运行情况,结果速度比正常运行时慢了好多好多,然后打出来的结果是这样的 第一行那个 __libc_start_main 函数的调用时间明显是不正常的,请问这是什么原因,是使用 ltrace 导致的吗?
..
我正在使用一个C应用程序,必须走$ PATH才能找到二进制文件的完整路径名,唯一允许的依赖关系是glibc(即不调用外部程序)。在正常情况下,这只需要通过冒号分割getenv(“PATH”)并逐个检查每个目录,但我想确保覆盖所有可能的角落。我应该注意什么?特别是相对路径,以〜意为扩展为$ HOME的路径,或包含以下内容的路径允许? 解决方案 p>有一件让我惊讶的是, PATH 中的空字符串表
..
一个经常被忽视的功能,不需要外部库,但基本上没有任何文件。 解决方案 更新(2010-10-11):linux手册页现在有getaddrinfo_a,您可以在这里找到: http ://www.kernel.org/doc/man-pages/online/pages/man3/getaddrinfo_a.3.html 作为免责声明,我应该补充说,我对C很新,但不完全是一个新手,所以
..
在运行perl程序时遇到以下错误 ***检测到glibc *** perl:double free or corruption( !prev):0x0c2b7138 *** /lib/tls/i686/cmov/libc.so.6[0xb7daea85] /lib/tls/i686/cmov/libc.so.6(cfree+ 0x90)[0xb7db24f0] perl(Pe
..
我正在调试一个C程序(我没有写)。我已经启用了所有的内部调试工具(一大堆printf),并且我写了一个使用proc_open()的小PHP脚本,并且只抓住了stdout和stderr,并在一个文件中对它们进行时间坐标。 目前,该二进制文件正在使用glibc捕获的realloc()错误,并打印了一个glibc回溯,以:开头: *** glibc detected *** / sbin
..