libc

    0热度

    1回答

    我想建立一个静态链接的应用程序,可以使用动态加载插件。 问题是我无法摆脱libc.so依赖项。 我使用musl libc和编译像 /opt/cross/x86_64-linux-musl/bin/x86_64-linux-musl-gcc -Wl,-E -fPIC -I... -static-libgcc -Wl,-Bstatic -ldl -lc -lgcc source.c -o output

    0热度

    2回答

    我正在开发一个带有GCC的嵌入式系统,并且只想使用libc中的几个符号。例如,我想使用基本的memcpy,memmove,memset,strlen,strcpy等。但是,我想提供我自己的(较小的)printf函数,所以我不希望libc来提供printf函数。我不想在此平台上进行动态分配,所以我不希望malloc根本解决。 有没有办法告诉GCC“只提供这些符号”来自libc? 编辑:要清楚,我问,

    1热度

    1回答

    我希望能够通过调试符号静态链接到libc版本,然后通过lldb运行我的程序。 otool -L <my binary> 使它看起来像唯一的动态链接库(DLL)是: /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) 这也是我的猜测是libc中的DLL是(虽然nm未列出的一切,我会

    1热度

    1回答

    作为计算机设计课程中的一项任务,我的团队必须通过溢出缓冲区并使用我们已找到的几个小工具来使用面向返回的编程来访问shell。 使用GDB我们发现字符串“/ bin/sh的”与下面的命令的位置: (GDB) find &system, +9999999, "/bin/sh" 然后用几个小工具,我们可以将其加载到R0,并从那里,我们能够跳进 。 不幸的是,每次我们在访问终端之前碰到段错误。我们在这

    0热度

    2回答

    我在C.嵌入式项目致力于通过我们的供应商提供的工具链包括缺少一些POSIX标准功能有限的C库。例如,他们有一个time.h,但一些POSIX功能被省略。我想在我的项目中包含一些来自源代码的C库,使用#include <time.h>并期望这些函数存在。有没有办法让这些库,而无需修改其源代码或者没有选择,只能创建另一个头或许命名为time_suppl.h与附加功能和编辑所有的库的源文件包括编译每当他

    0热度

    1回答

    我在~/glibc/git/glibc/build中构建了新的glibc。我知道,我可以用它来启动程序嵌入到它和一个路径和对应的路径之后,装载机是这样的: $ objdump -p main RPATH /home/user/glibc/git/glibc/build 和: $ gcc main.c -o main -Wl,--rpath=$HOME/glibc/git/gli

    5热度

    1回答

    据我所知,没有与getline()等效的文件描述符的libc,而不是与FILE *一起使用。 是否有(技术)原因呢?

    0热度

    1回答

    (注:这是不是一个重复问题) 我使用的libc函数tempnam,并获得以下警告: warning: the use of 'tempnam' is dangerous, better use 'mkstemp' 我的问题不是“如何禁用警告”,而是“我应该使用什么函数”? mkstemp没有帮助,因为我没有尝试创建一个临时文件 - 我正在创建一个临时目录。而AFAIK,这没有一个API函数。

    0热度

    1回答

    我正在尝试运行在2.6.24内核上编译的真正旧应用程序。但每当我尝试运行的软件,我得到了无差错: ./deskewDeslant: /lib/libc.so.6: version `GLIBC_2.14' not found (required by ./deskewDeslant) ./deskewDeslant: /usr/lib/libstdc++.so.6: version `GLIBC

    0热度

    1回答

    我想用cygwin中的嵌入arm gcc编译器编译一个SDK。这是一个基于makefile的SDK。我的目标是皮层m3设备。我的问题是,SDK有一个针对目标的自定义libc实现,当我使用arm编译器(arm-none-eabi-gcc)进行编译时,它看起来会获取gnu arm libc,而不是SDK libc。这导致编译错误。我肯定makefile是正确的(我从一台电脑上复制并粘贴了整个SDK)。