作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
请问我的猜测是否正确:
我正在编写一个扩展(使用 C++
作为编程语言),当涉及到实际 make
eing 配置的源和宏时,我的 Makefile 包含以下设置。
PHP_PECL_EXTENSION = extensionname
EXTENSIONNAME_SHARED_LIBADD =
PHP_MODULES =
PHP_ZEND_EX =
如果我手动添加我的,它是怎么来的
PHP_NEW_EXTENSION(extensionname, <listofsourcecodefilenames>...)
也许我需要提供一些额外的信息?我确实尝试构建一些 PHP 源代码附带的股票扩展,一切都很顺利。
这是我的 config.m4
PHP_ARG_WITH(extensionname, enable extensionname,
[ --with-extensionname enable extensionname)], no, no)
if test "$PHP_EXTENSIONNAME" != "no"; then
PHP_REQUIRE_CXX()
PHP_EXTENSIONNAME_CFLAGS=""
if test $PHP_EXTENSIONNAME != "yes"; then
AC_MSG_CHECKING([for required lib in default path])
for i in $PHP_EXTENSIONNAME /usr/local/ /usr /opt/vendor/liblocation; do
if test -r $i/include/sqlncli.h; then
$REQUIREDLIB_DIR=$i
AC_MSG_RESULT(found in $i)
break
fi
done
if test -z "$REQUIREDLIB_DIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([please obtain the original required lib for Linux])
fi
PHP_CHECK_LIBRARY(requiredlib, RQLCriticalFunction, [
AC_MSG_RESULT(found)
PHP_ADD_LIBRARY_WITH_PATH(requiredlib, $REQUIREDLIB_DIR/../lib64, EXTENSIONNAME_SHARED_LIBADD)
PHP_ADD_INCLUDE($REQUiREDLIB_DIR/include)
], [
AC_MSG_RESULT([not found])
AC_MSG_ERROR([please install blah-blah])
], [
-L$REQUIREDLIB_DIR/../lib64 -lm
])
fi
AC_DEFINE(HAVE_EXTENSIONNAME, 1, [Whether you have extensionname])
PHP_ADD_LIBRARY(stdc++, 1, EXTENSIONNAME_SHARED_LIBADD)
PHP_ADD_INCLUDE('sql.h')
PHP_ADD_INCLUDE('sqlext.h')
PHP_NEW_EXTENSION(extensionname, source1.cpp source2.cpp source3.cpp, $ext_shared)
PHP_SUBST(EXTENSIONNAME_SHARED_LIBADD)
fi
最佳答案
我一直在看 http://www.opensource.apple.com/source/apache_mod_php/apache_mod_php-18.9/php/README.UNIX-BUILD-SYSTEM就在一分钟前,对于一个类似的问题,并注意到你似乎在最后遗漏了 $ext_shared
:
PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
关于PHP_NEW_EXTENSION() 什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715554/
请问我的猜测是否正确: 我正在编写一个扩展(使用 C++ 作为编程语言),当涉及到实际 makeeing 配置的源和宏时,我的 Makefile 包含以下设置。 PHP_PECL_EXTENSION
我正在尝试为 PHP 编写 C 扩展。这是我的 config.m4。直接从helloworld出来,差不多 PHP_ARG_ENABLE(my_ext, whether to enable my_ex
我是一名优秀的程序员,十分优秀!