c++ - Libfaketime Linux 3.1.0?

标签 c++ linux

我正在尝试为 Linux 创建一个像 RunAsDate 这样的软件。我正在 Linux 3.1.0 上工作,libfaketime 不起作用。 谁能帮我这个? 我想我有最新版本。
问题是这样的:

$ ./faketime 'last friday 5 pm' /bin/date
date: symbol lookup error: /usr/lib/faketime/libfaketime.so.1: undefined symbol: dlsym
Error: Timestamp to fake not recognized, please re-try with a different timestamp. 

我运行了sudo make install,然后将/usr/local/lib/faketime 链接到/usr/lib/faketime。

编辑:响应 hotchl 的答案,这是(相同的)输出:

$ tar paxvf libfaketime-0.8.1.tar.gz
libfaketime-0.8.1/
libfaketime-0.8.1/test/
libfaketime-0.8.1/test/Makefile
libfaketime-0.8.1/test/timetest.c
libfaketime-0.8.1/test/test.sh
libfaketime-0.8.1/README
libfaketime-0.8.1/Makefile
libfaketime-0.8.1/man/
libfaketime-0.8.1/man/Makefile
libfaketime-0.8.1/man/faketime.1
libfaketime-0.8.1/src/
libfaketime-0.8.1/src/Makefile
libfaketime-0.8.1/src/faketime
libfaketime-0.8.1/src/faketime.c
libfaketime-0.8.1/meta/
libfaketime-0.8.1/meta/Makefile
libfaketime-0.8.1/meta/Changelog
libfaketime-0.8.1/meta/COPYING
$ cd libfaketime-0.8.1/src
$ make
gcc -o faketime.o -c -std=gnu99 -Wall -DFAKE_STAT -DFAKE_INTERNAL_CALLS -fPIC  faketime.c
gcc -o libfaketime.so.1 -Wl,-soname,libfaketime.so.1 -shared -ldl -lm -lpthread faketime.o
gcc -o faketimeMT.o -c -std=gnu99 -Wall -DFAKE_STAT -DFAKE_INTERNAL_CALLS -fPIC -DPTHREAD -DPTHREAD_SINGLETHREADED_TIME faketime.c
gcc -o libfaketimeMT.so.1 -Wl,-soname,libfaketimeMT.so.1 -shared -ldl -lm -lpthread faketimeMT.o
$ LD_PRELOAD=`pwd`/libfaketime.so.1 FAKETIME="-15d" /bin/date
/bin/date: symbol lookup error: ./libfaketime.so.1: undefined symbol: dlsym

最佳答案

您的/bin/date 是动态链接的可执行文件吗? ldd/bin/date 是否显示对共享库的依赖关系?另外,它是否链接到 libdl.so.2?

如果是动态链接但没有链接到libdl.so.2.,请将/lib/libdl.so.2添加到LD_PRELOAD路径。

关于c++ - Libfaketime Linux 3.1.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8199381/

相关文章:

c++ - 如何使用派生类中的虚函数,在另一个类中使用基类参数声明?

c++ - 将可变参数函数模板的每个参数传递给返回 void 的函数

c++ - 测量执行时间——在程序代码中还是在 shell 中?

c++ - boost asio 通知服务器断开连接

linux - 适合新 Ruby on Rails 开发人员的最佳 Linux 截屏视频学习系列?

linux - Docker 服务主机配置启动失败

c++ - 如何找出 C++ header 在 Visual Studio 中编译需要多少时间?

c++ - 我的程序的独特行为,无法识别

c++ - 删除数组中的多个元素

具有root权限的Python进程竞赛