我正在开发一个用C编写的新PHP扩展。通常我用来构建它的命令看起来像这样:
phpize
./configure --enable-framework
make
sudo make install
所以这里没什么太疯狂的,只是标准的。我的config.m4
非常基本,看起来像这样:
PHP_ARG_ENABLE(framework, whether to enable framework support,
[ --enable-framework Enable Framework support])
if test "$PHP_FRAMEWORK" = "yes"; then
AC_DEFINE(HAVE_FRAMEWORK, 1, [Whether you have Framework])
PHP_NEW_EXTENSION(framework, framework.c, $ext_shared)
fi
但我有从gccgo生成的multi.o
二进制文件,我想成为编译过程的一部分。在framework.c
之后添加它不起作用;就像.c
源文件一样。
因为Makefile
是自动生成的,所以它显然不知道multi.o
,所以我知道它必须在某个地方的config.m4
文件中,但我不知道在哪里。
有人知道我需要做什么才能让它发挥作用吗?
答案 0 :(得分:0)
我已将此行添加到我的config.m4
文件中,似乎已将其修复:
EXTRA_LDFLAGS=multi.o
所以现在整个文件看起来像这样:
PHP_ARG_ENABLE(framework, whether to enable framework support,
[ --enable-framework Enable Framework support])
if test "$PHP_FRAMEWORK" = "yes"; then
AC_DEFINE(HAVE_FRAMEWORK, 1, [Whether you have Framework])
PHP_NEW_EXTENSION(framework, framework.c, $ext_shared)
EXTRA_LDFLAGS=multi.o
fi
这会在第36行生成Makefile
行EXTRA_LDFLAGS = multi.o
。这样就可以获取我需要的源并正常工作。
不确定这是否是最佳/正确的方法,但它确实有效。