呼叫C/C++;来自PHP的库函数-在共享库中具有多个类
正在阅读,我启动并运行了我的第一个PHP扩展 这是我使用的文章中的呼叫C/C++;来自PHP的库函数-在共享库中具有多个类,php,c++,c,php-extension,Php,C++,C,Php Extension,正在阅读,我启动并运行了我的第一个PHP扩展 这是我使用的文章中的config.m4文件(为了清楚起见,我保留了文章中相同的vehicles和car类名,尽管我真正的类有不同的名称): 我现在需要的是移动到另一个级别的代码组织,如下所示: a) 将汽车类别与其他车辆类别一起移动到通用车辆类别文件夹中(卡车,公共汽车等) b) 构建一个共享库将包含所有这些类 c) 从PHP调用该共享库类 因此,我将有如下目录结构,如: vehicles->src=.cpp类和include文件 vehicles-
config.m4
文件(为了清楚起见,我保留了文章中相同的vehicles
和car
类名,尽管我真正的类有不同的名称):
我现在需要的是移动到另一个级别的代码组织,如下所示:
a) 将汽车
类别与其他车辆类别一起移动到通用车辆类别文件夹中(卡车
,公共汽车
等)
b) 构建一个共享库将包含所有这些类
c) 从PHP调用该共享库类
因此,我将有如下目录结构,如:
vehicles->src
=.cpp类和include文件
vehicles->lib
=车辆.so共享库
考虑到所有车辆的类都包括原始路径中的文件,以及最终构建的共享.so库,我如何修改config.m4
以使用此结构
感谢您的帮助。PHP\u使用路径添加\u库成功。根据需要多次使用它(用于添加多个库) 最终代码:
PHP_ARG_ENABLE(vehicles,
[Whether to enable the "vehicles" extension],
[ --enable-vehicles Enable "vehicles" extension support])
if test $PHP_VEHICLES != "no"; then
PHP_ADD_LIBRARY_WITH_PATH(libraryname1, /etc/whatever_path_to_library, VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(libraryname2, /etc/whatever_path_to_library, VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(libraryname3, /etc/whatever_path_to_library, VEHICLES_SHARED_LIBADD)
PHP_REQUIRE_CXX()
PHP_SUBST(VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++, 1, VEHICLES_SHARED_LIBADD)
PHP_NEW_EXTENSION(vehicles, vehicles.cc car.cc, $ext_shared)
fi
PHP_ARG_ENABLE(vehicles,
[Whether to enable the "vehicles" extension],
[ --enable-vehicles Enable "vehicles" extension support])
if test $PHP_VEHICLES != "no"; then
PHP_ADD_LIBRARY_WITH_PATH(libraryname1, /etc/whatever_path_to_library, VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(libraryname2, /etc/whatever_path_to_library, VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(libraryname3, /etc/whatever_path_to_library, VEHICLES_SHARED_LIBADD)
PHP_REQUIRE_CXX()
PHP_SUBST(VEHICLES_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++, 1, VEHICLES_SHARED_LIBADD)
PHP_NEW_EXTENSION(vehicles, vehicles.cc car.cc, $ext_shared)
fi