Bonjour,
Je cherche à lancer un script perl depuis un programme C avec une chaine de caractère en argumant. J'ai trouver des choses sur le net mais rien qui compile

fichier main.c:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
#include <EXTERN.h>
#include <perl.h>
#include <stdio.h>
#include <stdlib.h>
static PerlInterpreter *my_perl;
 
main(int argc, char *argv[]){
        char *args[] = { NULL };
        my_perl = perl_alloc();
        perl_construct(my_perl);
 
        perl_parse(my_perl, NULL, argc, argv, NULL);
        perl_call_argv("truc", G_DISCARD | G_NOARGS, args);
 
        perl_destruct(my_perl);
        perl_free(my_perl);
}
fichier truc.pl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
#!/usr/bin/perl -w
use strict;
 
print "\n hello world !\n";
Commande pour compiler:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
cc main.c  -o main -O2 -Dbool=char -DHAS_BOOL 
-I/usr/local/include
 -I/usr/lib/perl/5.14/CORE 
-L/usr/lib/perl/5.14/CORE
Erreurs renvoyées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
error: undefined reference to 'perl_alloc'
function main: error: undefined reference to 'perl_construct'
function main: error: undefined reference to 'perl_parse'
function main: error: undefined reference to 'Perl_call_argv'
post4.c:function main: error: undefined reference to 'perl_destruct'
function main: error: undefined reference to 'perl_free'
Si vous connaissez une autre solution je suis aussi prenneur.
merci.