今天so终于是调起来了,服务器上的问题虽然一度没有办法,但是也最终解决了。好了 ,把过程步骤和问题都汇总一下啦偷笑
先来说一下网上烂大街的调用so步骤:
首先,编写一个简单的so:
int hello(int a,int b)
{
return a+b;
}
然后将它编译成.so文件:
放到系统库中:
$sudo cp libhello.so /usr/local/lib
$ sudo ldconfig
在这里说明一下,之前的linux系统的用户动态库目录设置好像是在/etc/ld.so.conf.d/local.conf文件中,而在我使用的ubuntu12.04中是在/etc/ld.so.conf.d/libc.conf这个文件中,而且默认已设置为/usr/local/lib这个目录,将我们的so文件放到这个目录后,需用ldconfig命令使其生效。
下面我们写个test程序来验证一下:
#include <stdio.h>
int main()
{
int a = 3, b = 4;
printf("%d + %d = %d\n", a, b, hello_add(a,b));
return 0;
}
编译并执行:
$ gcc -o hellotest hellotest.c -lhello
$ ./hellotest
3 + 4 = 7
OK,下面我们来制作PHP模块。首先确保你安装了 php-devel (centOS系列),ub