- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想编写一个脚本来执行以下命令:
${CROSS_COMPILE}gcc -static myinit.c -o myinit
cd initramfs
fakeroot # this is pure magic (it allows us to pretend to be root)
mkdir -p dev
mknod dev/console c 5 1
chown root init
find . | cpio -H newc -o > ../initramfs.cpio # <-- this is the actual initramfs
exit # leave the fakeroot shell
cd ..
截至目前,我每天必须手动执行此操作 200 次。所以我想它可以转换成一个 scipt 来自动化这个过程。按照这个论坛中的其他答案,我尝试的是:
更新代码
#!/bin/bash
LD_PRELOAD="/usr/lib64/libfakeroot/libfakeroot-tcp.so" printenv "LD_PRELOAD" libfakeroot-tcp.so
printenv "LD_PRELOAD"
printenv "LD_PRELOAD"
arm-xilinx-linux-gnueabi-gcc -static echotest.c -o init
cp init initramfs
cd initramfs
fakeroot
mkdir -p dev
mknod dev/console c 5 1
chown root init
find . | cpio -H newc -o > ../initramfs.cpio
exit
cd ..
我将其保存在 test.sh 中,并使该文件可执行。这是我得到的输出:
更新输出
/usr/lib64/libfakeroot/libfakeroot-tcp.so
libfakeroot-tcp.so
ERROR: ld.so: object 'libfakeroot-tcp.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libfakeroot-tcp.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libfakeroot-tcp.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libfakeroot-tcp.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libfakeroot-tcp.so' from LD_PRELOAD cannot be preloaded: ignored.
fakeroot: FAKEROOTKEY set to 39730
fakeroot: nested operation not yet supported
1289 blocks
我得到了预期的文件 initramfs.cpio ,但为什么会出现这些错误?
最佳答案
当你说
LD_PRELOAD="/usr/lib64/libfakeroot/libfakeroot-tcp.so" printenv "LD_PRELOAD" libfakeroot-tcp.so
在 printenv 命令期间仅设置 LD_PRELOAD 变量。尝试:
export LD_PRELOAD="/usr/lib64/libfakeroot/libfakeroot-tcp.so"
arm-xilinx-linux-gnueabi-gcc -static echotest.c -o init
...
关于linux - 无法在 bash 脚本中正确设置环境变量 LD_PRELOAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096290/
我的代码如下:preload.c,内容如下: #include #include int __attribute__((constructor)) main_init(void) {
我尝试使用 LD_PRELOAD 来 Hook sprintf function ,所以我将打印到缓冲区的结果: #define _GNU_SOURCE #include #include int
实际问题 我有一个默认情况下使用 EGL 和 SDL 1.2 分别处理图形和用户输入的可执行文件。使用 LD_PRELOAD ,我已经用 GLFW 替换了两者。 这正常工作,除非用户安装了 GLFW
我用 C 代码编写二进制文件。如何防止其他用户在我的二进制文件上使用 LD_PRELOAD? 使用LD_PRELOAD时,是否有任何信号可以让我处理并中断程序? 如果我静态编译二进制文件,我听说 LD
我用 C 代码编写二进制文件。如何防止其他用户在我的二进制文件上使用 LD_PRELOAD? 使用LD_PRELOAD时,是否有任何信号可以让我处理并中断程序? 如果我静态编译二进制文件,我听说 LD
这可能会很尴尬: 我在其他项目中使用库预加载,但我无法让这个最小的示例工作: weakref.h: void f_weak() __attribute__((weak)); weakref.c: #i
目前,我有一个应用程序可以: execlp(java_exec、java_args等); 启动 jar 文件。 有没有办法将其前置 LD_PRELOAD="mylib.so" ? 我找不到告诉 exe
我有一个 LD_PRELOAD 文件。在什么操作系统和条件下,我应该编译这个预加载以在大多数系统 (Unix/Linux) 上工作。最想要的是 FreeBSD、Ubuntu、CenstOS、Solar
我有一个用 C 编写的客户端和一个服务器。为了保护我实现的连接: 我自己连接并接受 Diffie-Hellman key 。 我自己发送和接收,以便使用 AES 加密流量。基本上,我用数据加密缓冲区并
我在 Google 的 tcmalloc 上看到了这条建议文档页面。 You can use TCMalloc in applications you didn't compile yourself,
在 Ubuntu 16.04 系统上,一直在尝试将 ld_preload 与自定义编译的 libpcap.so 一起使用并运行 tcpdump。 编译 libpcap (1.8.0) ./config
我正在尝试 LD_PRELOAD 一个声明如下的函数 // header1.h typedef enum { ... } enum1; // header2.h typedef enum { ...
我们有一个在嵌入式 powerpc 上运行的用 g++ 编译的多线程 c++ 应用程序。为了在持续集成测试中对此进行内存泄漏测试,我们创建了一个使用 ld_preload 加载的堆分析器。 我们想保证
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
是否可以使用 LD_PRELOAD 覆盖其中一个 linux 内核函数? 例如,我想在 Linux/net/ipv4/syncookie.c 中为我的程序 fooserver。我可以使用 LD_PRE
我编写了 LD_PRELOAD 模块,我的所有源代码都在 source.cpp 中,但现在我需要添加 crypt.cpp 文件以及我需要的一些类,如何使用多个 .cpp 文件通过 g++ 编译 LD_
我有这个小测试代码atfork_demo.c: #include #include void hello_from_fork_prepare() { printf("Hello from
我有我的 .so 库,我将它注入(inject)到我的 Ubuntu 服务器上的各种进程中。但是我找到了我用常规命令启动的二进制文件: LD_PRELOAD=/home/glinkd/preload3
我需要在 Linux 中记录所有终端命令。我在 C 中找到了正确工作的库,但它仅在我运行 LD_PRELOAD=/usr/local/bin/bashpreload.so/bin/bash 时有效:
操作系统: Ubuntu 16.04 64 位 python : 2.7.12 我有一个非常简单的 Python 程序,它只加载了两个库 libhidapi-hidraw 和 libpcProxAPI
我是一名优秀的程序员,十分优秀!