Swig не удается создать расширение php libnetcdf - PullRequest
2 голосов
/ 20 февраля 2012

Мне нужно связать libnetcdf с PHP.(php-netcdf на google-коде не работает)

Вот 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

Впервые я пытаюсь что-то подобное.Я что-то упустил?

ADDED -lnetcdf flag.

Теперь я получил: undefined символ: zend_error_noreturn.исправлена ​​замена zend_error_noreturn на zend_error в netcdf_wrap.c

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Ваша непосредственная проблема вызвана отсутствием ссылок на libnetcdf.Для этого вам необходим флаг -l:

gcc -shared netcdf_wrap.o -o netcdf.so -lnetcdf
                                           ☝
0 голосов
/ 27 февраля 2013

php-netcdf в Google Code не поврежден, он просто незакончен и больше не поддерживается. Однако одному из авторов, Санти Оливерасу, кажется, удалось его использовать. Попробуйте связаться с ним, может быть, у него есть новый код или что-то в этом роде. Или не стесняйтесь принять проект.

P.S. Я автор.

...