Charger une lib maison avec FFI

Le problème exposé dans ce sujet a été résolu.

Hello,

Ma question concerne php-ffi mais le cas est probablement le même pour toutes les intégrations FFI. J’ai créé une lib en suivant ce tuto (qui est excellent). J’essaie maintenant de la charger avec PHP. J’ai tenté cela mais sans succès:

$ffi = FFI::cdef('long long int factorielle(long int n);', __DIR__ . '/lib/libfac.so.1');
echo $ffi->factorielle(2) . "\n";

Voici l’output:

PHP Fatal error:  Uncaught FFI\Exception: Failed loading '/home/nek/factorielle/lib/libfac.so.1' in /home/nek/factorielle/test.php:7
Stack trace:
#0 /home/nek/factorielle/test.php(7): FFI::cdef()
#1 {main}
  thrown in /home/nek/factorielle/test.php on line 7

Avez-vous des idées de ce qui cloche ? Merci d’avance :) .

C’était une typo. Ça fonctionne très bien en réalité. :'(

Et donc :

$ffi = FFI::cdef('long long int factorielle(long int n);', __DIR__ . '/lib/libfact.so.1');

Avec un t. u.u'

Sinon en effet dlopen c’est la fonction utilisée en interne par PHP. En cherchant de ce côté c’était une dead end…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte