运行 Mac OS 10.7.2 并尝试运行libfaketime但什么也没发生。我完全按照指示安装并运行,只是时间和日期保持与系统中设置的完全一致?还有其他人能够在 OSX 上成功运行吗?
$ date
Mon Jan 30 21:05:09 CST 2012
$ LD_PRELOAD=./libfaketime.so.1 FAKETIME="-15d" date
Mon Jan 30 21:05:32 CST 2012
答案1
在 Mac OS 上使用 DYLD_INSERT_LIBRARIES 而不是 LD_PRELOAD。您可能还需要设置 DYLD_FORCE_FLAT_NAMESPACE。例如
DYLD_INSERT_LIBRARIES=./libfaketime.so.1 DYLD_FORCE_FLAT_NAMESPACE=y FAKETIME="-15d" date
答案2
如果你像这样编译库:
gcc -shared -fPIC mylib.c -o mylib.so
您可以创建环境变量:
export DYLD_INSERT_LIBRARIES=./mylib.so
export DYLD_FORCE_FLAT_NAMESPACE=y
然后使用新加载的库执行:
./program
观察:
在 macOS High Sierra (v 10.13.1) 上工作