- 主题:phplib和telnet公用的函数放在哪里
rt
我新写了一个函数,web和telnet下都要用,不知道应该放在哪个现成的文件中。
我现在系统是enable-site=aaa,然后将一个新函数foo写到site/aaa.c,结果发现修改完aaa.c之后,make的时候phplib的so文件没有重新编译,所以用web访问的时候会出错:
/usr/sbin/apache: symbol lookup error: /usr/lib/php4/libexec/libphpbbslib.so: undefined symbol: foo
奇怪的是,同样的configure配置,一个站点web访问正常,另外一个站点出现上面的错误,不知道该怎么解决
--
FROM 222.171.7.*
你说是site.h加foo的声明吗?
我在libphpbbslib.so能够找到foo的字符串,但是还是有那个undefine的错误
【 在 fancyrabbit (兔兔猫★Initial F★Changing ...) 的大作中提到: 】
: site.c也在libBBS里吧,我估计他.h里没加声明 ...
--
FROM 222.171.7.*
这个需要加吗,我编译的时候没有问题的...
我在phpbbs.user.c和src/talk.c中这么修改的:
#ifdef FOO
void foo();
#endif
...
...
#ifdef FOO
foo();
#endif
然后在site/aaa.c中:
#ifdef FOO
void foo()
{
...
}
#endif
site/aaa.h:
#define FOO
【 在 foxban (未毕业的码农) 的大作中提到: 】
: func.h?
--
修改:luckwithme FROM 222.171.7.*
FROM 222.171.7.*
现在很弱的解决办法就是在phpbbs.user.c中再加一个foo函数完整的定义,但是太e了……
【 在 luckwithme (Marvel) 的大作中提到: 】
: 这个需要加吗,我编译的时候没有问题的...
: 我在phpbbs.user.c和src/talk.c中这么修改的:
: #ifdef FOO
: ...................
--
FROM 222.171.7.*
#ifdef FOO
void foo();
#endif
...
...
#ifdef FOO
foo();
~~~~~~~这个就是调用……
#endif
问题是一台机器上没问题,另一台机器有问题,make clean之后还是不行。
现在就是在phpbbs.user.c中添加foo代码,或者定义和声明写到a.c/h文件,然后include a.h
【 在 atppp (Big Mouse) 的大作中提到: 】
: 把你完整的修改贴出来,上面贴的这个你根本没有在phpbbs.user.c里面调用foo阿
--
FROM 222.171.7.*
哦,再试一下吧 :-)
【 在 fancyrabbit (兔兔猫★Initial F★Changing ...) 的大作中提到: 】
: func.h没事,那几个 .h 最后都进 bbs.h 了
: 你这个看起来没问题应该,全部代码 make install 了吗
: 如果的确 make install 了可以考虑 make clean; make 一下 ..
: ...................
--
FROM 222.171.7.*