whuldc2011 2015-04-23 12:51 采纳率: 0%
浏览 2476

请问对Ceph源代码的改动在重新编译安装后为何无法体现出来?

请懂Ceph的大神们帮帮忙:
我们实验室在做一个跟Ceph相关的项目,在Ubuntu 12.04的环境下,发现对于源代码的改动在重新编译安装后跟没改动一样。。。
具体:
在Client.cc的7988行,也就是在 client::_create() _函数中,将正在创建的文件名name赋给一个新的变量name2并对name2进行随意修改(例如尾部增加一个字符串),并且在该函数中后面引用name的地方都换成name2。然而,重新编译安装ceph之后,这个修改并未被体现出来。

然后,我直接在这里添加fopen,在一个特定的路径下无条件地新建一个文件,但也没有得到执行。。。

但我确定修改确实在编译安装的时候体现出来了,因为重新make的时候,时间比不修改的情况下明显变长,并且提示正在编译被修改的client.cc相关文件。。。

现在我猜测是不是因为linux内核里已经融入了ceph文件系统的部分,而client.cc编译出的结果由于是动态链接库,linux在执行ceph文件系统IO的时候,在其内核中发现了这部分代码,就不会调用新编译出的动态链接库?

如果是,请问应该怎么弄?如果不是,请问又是什么原因呢?应该怎么解决?

多谢各位了!!!

  • 写回答

2条回答 默认 最新

  • devmiao 2015-04-23 13:02
    关注

    看下编译后的二进制文件的修改时间,还有是否加载的是新的内核

    评论

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable