2

我需要将 libnetcdf 与 PHP 接口。(谷歌代码上的 php-netcdf 坏了)

这是 netcdf.i :

%module netcdf
 %{
 /* Includes the header in the wrapper code */
 #include "netcdf.h"
 %}

 /* Parse the header file to generate wrappers */
 %include "netcdf.h"

我做了:

gcc `php-config --includes` -fpic -c netcdf_wrap.c
gcc -shared netcdf_wrap.o -o netcdf.so

但是在 php 中加载扩展时,我得到:

Unable to load dynamic library netcdf.so:
undefined symbol: ncerr in Unknown on line 0

这是我第一次尝试这样的事情。我错过了什么吗?

添加 -lnetcdf 标志。

现在,我得到了:未定义的符号:zend_error_noreturn。修复了在 netcdf_wrap.c 中用 zend_error 替换 zend_error_noreturn

4

2 回答 2

1

您的直接问题是由于未链接 libnetcdf 引起的。您需要-lgcc 的标志来执行此操作:

gcc -shared netcdf_wrap.o -o netcdf.so -lnetcdf
                                           ☝
于 2012-02-19T20:55:28.093 回答
0

Google Code 上的 php-netcdf 没有损坏,只是未完成且不再维护。但是,其中一位贡献者 Santi Oliveras 似乎设法使用了它。尝试联系他,也许他有一些新的代码或什么的。或者随时接管该项目。

PS我是作者。

于 2013-02-27T07:49:43.310 回答