glibc相关内容

“非法指示"指的是“非法指示".在其他计算机上运行预编译程序时

我必须在CentOS 7上构建程序并在其他Linux机器上进行部署.该程序需要较新的版本glibc,并且某些库尚未(也不会)安装在目标计算机上.因此,我决定将可执行文件与动态库一起提供.我用patchelf修补了interpreter和rpath. 我在计算机上测试了可执行文件,并且可执行(也已通过ldd检查以确保使用了新的rpath).但是,当我使用libs复制到其他计算机时,该程序无法运 ..
发布时间:2020-07-06 03:15:09 其他开发

Python CFFI内存管理问题

我正在使用Python 2.7.3在Ubuntu上进行编程. 我正在使用CFFI用来自某些C代码的值填充Python列表. 这个列表很大:打印时大约有71000个字符. C代码正在使用许多库.因此,下面的代码仅是为了更好地了解正在发生的事情. datas_list = [] for i in range( 0, x ): c_pDataStructure = ffi.n ..
发布时间:2020-07-04 22:30:23 其他开发

glibc rand函数实现

我正在阅读 c标准库rand()函数实现带有glibc源代码. stdlib/random_r.c,第359行 int __random_r (buf, result) struct random_data *buf; int32_t *result; { int32_t *state; if (buf == NULL || resu ..
发布时间:2020-07-04 00:14:25 其他开发

Linux C ++可移植二进制问题

我尝试将我的二进制文件及其所有共享库打包到一个归档文件中.我希望用户仅提取存档以使二进制文件起作用.该可执行文件是通过Shell脚本启动的,在该脚本中,我将LD_LIBRARY_PATH设置为存档中包含的共享库路径. 第一次,我想使其在RHEL 6.7发行版上运行,因此我已使用该发行版编译了二进制文件,并且在我对其进行测试时,它运行良好. 问题是我现在必须使其在RHEL 7.2上运行(并保持 ..

libm.so.6:无法打开共享库文件:没有这样的文件或目录

我已经在Centos 6.8中安装了一个程序,在运行该程序时,我收到错误消息 “加载共享库时出错:libm.so.6:无法打开共享库文件:没有这样的文件或目录" 当我使用ldd命令检查到程序的链接库时,可以看到具有正确64位的libm.so.6 "libm.so.6 =>/lib64/libm.so.6(0x0000003a19000000)" 这意味着,库已安装并且已经添加到环境变量LD_LIB ..
发布时间:2020-06-29 19:45:10 其他开发

如何在编译时删除"GLIBC_2.27"要求?

我一直在使用docker映像进行c ++编译.它基于Ubuntu 18.04.当我尝试在某些Ubuntu 16系统上运行时,出现以下消息: /lib/x86_64-linux-gnu/libm.so.6:未找到版本"GLIBC_2.27" 我将在下面发布完整的ldd输出.我喜欢使用较新的编译器.我宁愿不使用较旧的Linux基本映像进行编译(但如有必要,我会这样做).我静态链接了大多数库 ..
发布时间:2020-06-29 19:45:00 其他开发

GlibC双重释放或损坏(关闭)

我的C程序在运行时出现错误.我发现了一些有关“双重释放或腐败"错误的信息,但没有任何意义. 这是我的代码: void compute_crc32(const char* filename, unsigned long * destination) { FILE* tmp_chunk = fopen(filename, "rb"); printf("\n\t\t\tCalcula ..
发布时间:2020-06-14 19:16:35 其他开发

在Alpine Linux上构建glibc时出错

我正在尝试在Alpine Linux上安装 glibc 。我在Docker中运行Alpine Linux。这是我正在使用的步骤: docker pull alpine docker run -it alpine / bin / sh apk add- no-cache make gcc linux-headers bsd-compat-headers gawk野牛binutils cor ..
发布时间:2020-06-03 22:42:39 其他开发

在docker alpine linux基本映像上设置glibc是否有最佳实践?

是否有在带有正确路径的docker alpine linux基础映像上设置glibc的最佳实践,以便任何生成的进程都可以正确引用已安装libc库的位置? 解决方案 是的, 我使用了自定义的glibc在其上安装JRE。 您可以在此处 找到它 您可以使用wget或curl获取代码并apk安装它们 更新的命令请参见下面的注释 apk --no-cache添加ca证 ..
发布时间:2020-06-03 22:40:23 其他开发

如何实现类似于"truncateat"的东西?

在研究这个问题时,我遇到了一个事实,即在POSIX(和Linux)中根本没有一个系统调用. 某些系统调用(例如unlink)具有等效的替代方法,其名称末尾带有at后缀,即unlinkat.这些方法之间的区别在于,后缀at的变体接受附加参数,即指向目录的文件描述符.因此,传递到unlinkat的相对路径不是相对于当前工作目录,而是相对于提供的文件描述符(打开目录).在某些情况下这真的很有用. ..
发布时间:2020-05-29 18:48:50 服务器开发

如何使用settimeofday(2)?

我在这里做错了什么?我希望settimeofday()更改系统时间,而不返回EINVAL. $ uname -a Linux io 4.3.5-300.fc23.x86_64 #1 SMP Mon Feb 1 03:18:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux $ cat settimeofday.c #include ..
发布时间:2020-05-29 18:43:54 服务器开发

我应该允许多大的strerror_r?

OpenGroup POSIX.1-2001定义 strerror_r , Linux标准基础内核规范3.1 .但是我找不到对错误消息可以合理预期的最大大小的引用.我希望可以在代码中定义一些地方,但是找不到. 代码必须是线程安全的.这就是为什么使用strerror_r而不是strerror的原因. 有人知道我可以使用的符号吗?我应该创建自己的吗? 示例 int result ..
发布时间:2020-05-29 18:39:29 服务器开发

pthread函数"_np"后缀

"_ np"后缀在这里是什么意思: pthread_mutex_timedlock_np 或在宏 中 PTHREAD_MUTEX_TIMED_NP 更新: 来自glibc2.2 enum { PTHREAD_MUTEX_TIMED_NP, PTHREAD_MUTEX_RECURSIVE_NP, PTHREAD_MUTEX_ERRORCHECK_NP ..
发布时间:2020-05-29 18:36:07 其他开发

C ++:崩溃时不显示glibc的Backtrace和内存映射

我正在使用Python进行自动C ++代码测试.所以我有一个Python脚本,可以编译和执行C ++代码.当C ++代码崩溃时,即使我将正在执行的C ++程序的cout和cerr重定向到了/dev/null,libc输出也可以从我的Python脚本输出中看到. 以下是解决问题的示例: #! /usr/bin/env python # -*- coding: utf8 *-* impo ..
发布时间:2020-05-22 20:19:38 C/C++开发

这是glibc/pthread中的错误吗?

我正在使用健壮的互斥锁和条件.在大多数情况下,这是可行的,但是我却很少遇到僵局. 我无法将其简化为一个可重现的小示例,并且我认为这很可能是我的代码中的一个问题,但是,我注意到了一些看起来可疑的东西: 当代码死锁时,pthread_cond_broadcast中有一个线程: #0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_ ..
发布时间:2020-05-14 00:55:31 其他开发

C标准库线程中的函数安全吗?

在哪里可以得到明确的答案,我的memcpy(使用Ubuntu随附的eglibc实现)是否是线程安全的? -老实说,我确实没有在文档中找到明确的“是"或“否". 顺便说一句,“线程安全"是指只要可以安全地同时复制一个字节的日期字节,就可以安全地并发使用memcpy.至少如果将只读数据复制到不重叠的区域,则应该可以做到这一点. 理想情况下,我想在解决方案 您可以在2.9.1 Thread ..
发布时间:2020-05-13 21:22:59 其他开发