- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我读了this article recently ,为了好玩,我尝试通过执行以下操作来覆盖 libc printf 函数:-
这是一个测试
(printer.c)muhahaha,这是一个测试
(custom.c)gcc -fPIC -g -c -Wall custom.c
gcc -shared -Wl,-soname,libmystuff.so.1 -o libmystuff.so.1.0.1 custom.o
导出 LD_PRELOAD=$(pwd)
我想 muhahaha, this is a test
会被打印出来,但看起来我做错了什么。我有什么概念错误吗?还是我只是做错了什么?
[编辑]
涉及的代码片段是:-
// printer.c
int main() {
printf("this is a test");
return 0;
}
// custom.c
void printf(char *t) {
puts("muhahaha, this is a test");
}
最佳答案
您应该在 LD_PRELOAD 环境变量中命名库,而不是目录。
export LD_PRELOAD=/path/to/libmystuff.so.1.0.1
关于linux - 玩弄 LD_LIBRARY_PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10359807/
在编译和链接C和C++代码时,LTDL_LIBRARY_PATH和LD_LIBRARY_PATH环境变量的作用是什么?另外它们还有什么区别? 谢谢 最佳答案 LTDL_LIBRARY_PATH 为 l
我是 Linux 的新手,刚刚使用带有 ARM64(Aarch64)的 Ubuntu 20.04 在 Oracle 云中设置了一个 VM。 我安装的 python 模块只有在我每次打开终端时都使用以下
我可以为单个应用程序设置 LD_LIBRARY_PATH 吗? 我正在调查系统调用失败,那么有什么方法可以使用 LD_LIBRARY_PATH 设置来设置正确的路径吗? 最佳答案 最简单的方法是创建一
我是 ubuntu 和 python 的新手。当我运行命令 LD_LIBRARY_PATH 时,功能运行良好。 ***sudo LD_LIBRARY_PATH=/binaries/linux/x86_
在 Ubuntu 上运行 GDB 7.4-2012.02 并且遇到我无法在其他平台上复制的奇怪行为。 bash$ export LD_LIBRARY_PATH=my_path bash$ export
构建 snap 包时,包装器脚本会自动将 $SNAP/usr/lib 添加到 LD_LIBRARY_PATH。 在 docker 上构建我的包时,一些库(在本例中为 liblapack 和 libbl
我想将这些文件编译成可执行文件。 //main.c #include #include int main(void){ call_hello_world(); return 0; } //
是否可以更改当前进程的环境变量? 更具体地说,在 python 脚本中,我想更改 LD_LIBRARY_PATH,以便在导入依赖于某些 xyz.so 的模块“x”时,xyz .so 取 self 在
我读了this article recently ,为了好玩,我尝试通过执行以下操作来覆盖 libc printf 函数:- 创建一个使用 printf 打印的可执行文件 这是一个测试(printer
我在centos 6.4上安装了两个版本的python。它带有 python 2.6.6。我在/home/python 中安装了 2.6.2。我的 PATH 变量在路径(/usr/bin/python
我正在修改一个现有脚本,我想在其中检查可执行文件中使用的一组库以及在运行时调用的共享库。我有需要与共享库进行比较的库列表。为了获取共享库,我试图通过提供以下代码来获取 LD_LIBRARY_PATH,
当 git 给出以下错误信息时,问题就开始了“致命:无法找到‘https’的远程助手” 为了解决这个问题,我必须先编译 libcurl 来重新编译 git。在编译 git 时,我设置了 CPPFLAG
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是 on-topic用于堆栈溢出。 已关闭10 年前。 Improve t
我想使用 lib.so 运行 C++ 代码并设置“LD_LIBRARY_PATH=/apollo/bazel-bin”,但 lib.so 位于“/apollo/bazel-bin/python”中,然
我正在尝试编译一个使用 zlib 的演示,我想我已经为 LD_LIBRARY_PATH 做了正确的设置,但它不适用于 -lz 标志,你能帮我找出问题所在吗? lisanhu@lisanhu-XPS-1
我有一个打印环境变量的简单控制台应用程序: int main(int argc, char **argv, char **envp) { printf("Scanning for LD_LIB_P
我正在尝试编译一个程序,但在配置检查期间找不到一个库。将我的 .bashrc 文件链接到这个库: LD_LIBRARY_PATH=/usr/lib/:/users/much/needed/libra
我正在为我的应用开发一个简单的插件架构。插件是具有已知“获取接口(interface)”功能的共享对象。我通过 dlopen/dlsym 等访问 .so。相当标准。我的一些插件有额外的 .so 文件也
我写了一个共享对象,比如说libsd.so,我把libsd.so和它的头文件sd.h放在~/lib. 这是另一个使用libsd.so的程序,比如test.c,然后像这样编译它: $ gcc -o te
我正在尝试在无法设置环境变量(无法导出)的远程系统上运行程序。我遇到的问题是我无法设置 LD_LIBRARY_PATH 来运行我的二进制文件,因为我没有(也无法获得)许可。 我需要对此进行快速修复,以
我是一名优秀的程序员,十分优秀!