请问对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个回答

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

whuldc2011
whuldc2011 已经确认编译后的二进制是新的了。可是它加载的是神马要怎么看?。。。要不我试着看下配置文件吧。。。thanks!
5 年多之前 回复

估计是没有配置正确,造成系统命运加载新的库文件。

whuldc2011
whuldc2011 这个是可以通过改配置文件办到的吗?好吧,我去看看配置文件里有无相关参数。。。谢谢。。。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐