主要的問題是,我這裡需要給php寫動態擴展庫,而當我移植完之後,phpinfo顯示:
引用
standard
Dynamic Library support not available
這樣的話,我寫的動態鏈接庫就無法加載。。
這裡的原因是當configure的時候他好像沒有找到dlopen,因此這裡我們需要configure完後強制他使用dlopen.
首先修改php的Makefile.在開始出添加LDFLAGS += -ldl ,這裡是為了鏈接dlopen庫。
然後修改main/php.h 在開始處添加#define HAVE_LIBDL 1 ,這個宏是為了交叉編譯時強制使用dlopen。
緊接著修改ext/standard/dl.c ,這段代碼中添加#include <dlfcn.h> ,這個是dlopen的頭文件。
#if defined(HAVE_LIBDL) || HAVE_MACH_O_DYLD_H
#include <stdlib.h>
#include <stdio.h>
#include <dlfcn.h>
然後make & make install.這樣就可以正常加載外部動態擴展庫了。