如何为大多数系统编译LD_PRELOAD
How to compile LD_PRELOAD for most systems
我有一个LD_PRELOAD文件。在什么操作系统和条件下,我应该编译这个预加载以在大多数系统(Unix/Linux)上运行。最想要的是FreeBSD,Ubuntu,CenstOS,Solaris。
谢谢!
您需要将其编译为共享库。以下是我通常如何编译我的:
libt.so: t.lo
g++ -fPIC -O3 -W -Wall -shared -Wl,-export-dynamic -o $@ $^ -lc
t.lo: t.cc
g++ -c -fPIC -O3 -W -Wall $^ -o $@
然后,要使用它,请在启动该文件之前将库添加到LD_PRELOAD环境变量。如果从bash
命令行执行此操作:
LD_PRELOAD=libt.so executable_name -and args
然后,它只会为该命令行运行设置它,而不会影响您之后启动的任何其他程序。
相关文章:
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- C++ 中的编译错误:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- /usr/bin/ld: cannot find -lc++
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 使 ld 忽略来自 /etc/ld.so.conf 的目录
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 试图在崇高中奔跑. 错误 已发生: 收集2.exe: 错误: ld 返回 1 退出状态
- collect2:错误:ld 返回 1 个退出状态未定义的引用
- LD:尝试编译项目时找不到架构x86_64符号
- Linux ld 如何解释 -lSomething::AnotherSomething(如 /usr/bin/ld: 找
- LD 找不到生成的函数
- C++ collect2:错误:ld 返回 1 退出状态
- OS X: ld: 找不到 -lstdc++ 的库
- Mac Snow Leopard 上的 Qt 5.3.2:ld:在架构x86_64 [clang、Objective-C
- 找不到 -llibmysqld Collect2.exe:错误:ld 返回 1 退出状态
- ld 链接器错误,未定义对主函数的引用
- 使用 Arduino 对 ATtiny10 进行编程 ( "ld.exe" 错误)
- 每次我要使用外部资源时,我都会得到:collect2。exe:错误 ld 返回 1 退出状态
- 当出现错误ld return 1退出状态时,如何编译程序