Bonjour,
j'essaie de compiler un programme C sous FreeBsd (extension PHP) en incluant les sources de PHP mais j'ai plusieurs erreurs qui s'affichent :
Les fichiers a compiler sont :
php_mod_0.c
php_module.c
(ils se trouvent dans le même dossier)

gmake[2]: Entering directory `/usr/home/lduport/FreeAge/tests/testmodule-php'
cc -fpic -Iinclude -std=gnu99 -pipe -O2 -fomit-frame-pointer -DNDEBUG -DZEND_DEBUG=0 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/Zend -I/usr/local/include/php/TSRM -I/usr/local/include/php/ext/ereg/regex -I/usr/local/include/php/ext/standard -I/usr/home/lduport/FreeAge/common/include -I/usr/home/lduport/FreeAge/client/include -I/usr/home/lduport/FreeAge/clientphp/include -I/usr/local/include -c -o php_mod_0.o php_mod_0.c
In file included from php_mod_0.c:13:
/usr/local/include/php/ext/standard/info.h:59: warning: return type defaults to 'int'
/usr/local/include/php/ext/standard/info.h: In function 'BEGIN_EXTERN_C':
/usr/local/include/php/ext/standard/info.h:59: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:60: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:61: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:62: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:63: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:64: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:65: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:66: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:67: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:68: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:69: error: expected declaration specifiers before 'PHP_FUNCTION'
/usr/local/include/php/ext/standard/info.h:70: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:71: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:72: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:73: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:74: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:75: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:76: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:77: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:78: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:79: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:80: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:81: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:82: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:83: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:84: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:85: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:86: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:87: error: expected declaration specifiers before 'PHPAPI'
/usr/local/include/php/ext/standard/info.h:89: warning: parameter names (without types) in function declaration
/usr/local/include/php/ext/standard/info.h:90: error: expected declaration specifiers before 'END_EXTERN_C'
In file included from php_mod_0.c:19:
/usr/include/stddef.h:49: error: storage class specified for parameter 'rune_t'
/usr/include/stddef.h:61: error: storage class specified for parameter 'wchar_t'
php_mod_0.c:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'mod_0_functions'
php_mod_0.c:42: error: expected declaration specifiers before ';' token
php_mod_0.c:45: error: expected declaration specifiers before 'zend_module_entry'
php_mod_0.c:61: error: expected declaration specifiers before ';' token
php_mod_0.c:63: error: expected declaration specifiers before 'ZEND_GET_MODULE'
php_mod_0.c:70: error: expected ')' before '*' token
php_mod_0.c:80: error: storage class specified for parameter 'le_session_reset_result'
php_mod_0.c:84: error: expected ')' before '*' token
php_mod_0.c:94: error: storage class specified for parameter 'le_crypto_get_aes_params_result'
php_mod_0.c:98: error: expected ')' before '*' token
php_mod_0.c:108: error: storage class specified for parameter 'le_crypto_begin_result'
php_mod_0.c:112: error: expected ')' before '*' token
php_mod_0.c:122: error: expected declaration specifiers before 'PHP_MINFO_FUNCTION'
php_mod_0.c:149: error: expected declaration specifiers before 'PHP_MINIT_FUNCTION'
php_mod_0.c:158: error: expected declaration specifiers before 'PHP_MSHUTDOWN_FUNCTION'
php_mod_0.c:171: warning: 'struct session_open_result' declared inside parameter list
php_mod_0.c:171: warning: its scope is only this definition or declaration, which is probably not what you want
php_mod_0.c:174: error: storage class specified for parameter 'session_open_result_format'
php_mod_0.c:174: error: parameter 'session_open_result_format' is initialized
php_mod_0.c:176: error: invalid application of 'sizeof' to incomplete type 'struct session_open_result'
php_mod_0.c:181: error: invalid use of undefined type 'struct session_open_result'
php_mod_0.c:187: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
php_mod_0.c:191: error: storage class specified for parameter 'session_open_func_def'
php_mod_0.c:191: error: parameter 'session_open_func_def' is initialized
php_mod_0.c:200: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:225: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:254: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:276: warning: 'struct session_reset_result' declared inside parameter list
php_mod_0.c:279: error: storage class specified for parameter 'session_reset_result_format'
php_mod_0.c:279: error: parameter 'session_reset_result_format' is initialized
php_mod_0.c:281: error: invalid application of 'sizeof' to incomplete type 'struct session_reset_result'
php_mod_0.c:286: error: invalid use of undefined type 'struct session_reset_result'
php_mod_0.c:292: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
php_mod_0.c:296: error: storage class specified for parameter 'session_reset_func_def'
php_mod_0.c:296: error: parameter 'session_reset_func_def' is initialized
php_mod_0.c:305: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:330: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:359: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:376: error: storage class specified for parameter 'session_close_func_def'
php_mod_0.c:376: error: parameter 'session_close_func_def' is initialized
php_mod_0.c:385: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:413: warning: 'struct crypto_set_rsa_key_params' declared inside parameter list
php_mod_0.c:421: warning: 'struct crypto_set_rsa_key_params' declared inside parameter list
php_mod_0.c:424: error: storage class specified for parameter 'crypto_set_rsa_key_params_format'
php_mod_0.c:424: error: parameter 'crypto_set_rsa_key_params_format' is initialized
php_mod_0.c:426: error: invalid application of 'sizeof' to incomplete type 'struct crypto_set_rsa_key_params'
php_mod_0.c:431: error: invalid use of undefined type 'struct crypto_set_rsa_key_params'
php_mod_0.c:437: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
php_mod_0.c:450: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
php_mod_0.c:454: error: storage class specified for parameter 'crypto_set_rsa_key_func_def'
php_mod_0.c:454: error: parameter 'crypto_set_rsa_key_func_def' is initialized
php_mod_0.c:463: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:494: warning: 'struct crypto_get_aes_params_result' declared inside parameter list
php_mod_0.c:497: error: storage class specified for parameter 'crypto_get_aes_params_result_format'
php_mod_0.c:497: error: parameter 'crypto_get_aes_params_result_format' is initialized
php_mod_0.c:499: error: invalid application of 'sizeof' to incomplete type 'struct crypto_get_aes_params_result'
php_mod_0.c:504: error: invalid use of undefined type 'struct crypto_get_aes_params_result'
php_mod_0.c:505: error: invalid use of undefined type 'struct crypto_get_aes_params_result'
php_mod_0.c:511: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
php_mod_0.c:515: error: storage class specified for parameter 'crypto_get_aes_params_func_def'
php_mod_0.c:515: error: parameter 'crypto_get_aes_params_func_def' is initialized
php_mod_0.c:524: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:549: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:579: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:602: warning: 'struct crypto_begin_result' declared inside parameter list
php_mod_0.c:605: error: storage class specified for parameter 'crypto_begin_result_format'
php_mod_0.c:605: error: parameter 'crypto_begin_result_format' is initialized
php_mod_0.c:607: error: invalid application of 'sizeof' to incomplete type 'struct crypto_begin_result'
php_mod_0.c:612: error: invalid use of undefined type 'struct crypto_begin_result'
php_mod_0.c:618: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
php_mod_0.c:622: error: storage class specified for parameter 'crypto_begin_func_def'
php_mod_0.c:622: error: parameter 'crypto_begin_func_def' is initialized
php_mod_0.c:631: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:656: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:685: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:702: error: storage class specified for parameter 'crypto_end_func_def'
php_mod_0.c:702: error: parameter 'crypto_end_func_def' is initialized
php_mod_0.c:711: error: expected declaration specifiers before 'PHP_FUNCTION'
php_mod_0.c:702: error: declaration for parameter 'crypto_end_func_def' but no such parameter
php_mod_0.c:622: error: declaration for parameter 'crypto_begin_func_def' but no such parameter
php_mod_0.c:605: error: declaration for parameter 'crypto_begin_result_format' but no such parameter
php_mod_0.c:602: error: declaration for parameter 'crypto_begin_result_bswap_fn' but no such parameter
php_mod_0.c:515: error: declaration for parameter 'crypto_get_aes_params_func_def' but no such parameter
php_mod_0.c:497: error: declaration for parameter 'crypto_get_aes_params_result_format' but no such parameter
php_mod_0.c:494: error: declaration for parameter 'crypto_get_aes_params_result_bswap_fn' but no such parameter
php_mod_0.c:454: error: declaration for parameter 'crypto_set_rsa_key_func_def' but no such parameter
php_mod_0.c:424: error: declaration for parameter 'crypto_set_rsa_key_params_format' but no such parameter
php_mod_0.c:421: error: declaration for parameter 'crypto_set_rsa_key_params_bswap_fn' but no such parameter
php_mod_0.c:413: error: declaration for parameter 'crypto_set_rsa_key_params_format_fn' but no such parameter
php_mod_0.c:376: error: declaration for parameter 'session_close_func_def' but no such parameter
php_mod_0.c:296: error: declaration for parameter 'session_reset_func_def' but no such parameter
php_mod_0.c:279: error: declaration for parameter 'session_reset_result_format' but no such parameter
php_mod_0.c:276: error: declaration for parameter 'session_reset_result_bswap_fn' but no such parameter
php_mod_0.c:191: error: declaration for parameter 'session_open_func_def' but no such parameter
php_mod_0.c:174: error: declaration for parameter 'session_open_result_format' but no such parameter
php_mod_0.c:171: error: declaration for parameter 'session_open_result_bswap_fn' but no such parameter
php_mod_0.c:108: error: declaration for parameter 'le_crypto_begin_result' but no such parameter
php_mod_0.c:94: error: declaration for parameter 'le_crypto_get_aes_params_result' but no such parameter
php_mod_0.c:80: error: declaration for parameter 'le_session_reset_result' but no such parameter
/usr/include/string.h:135: error: declaration for parameter 'swab' but no such parameter
/usr/include/string.h:124: error: declaration for parameter 'strxfrm' but no such parameter
/usr/include/string.h:122: error: declaration for parameter 'strtok_r' but no such parameter
/usr/include/string.h:120: error: declaration for parameter 'strtok' but no such parameter
/usr/include/string.h:119: error: declaration for parameter 'strstr' but no such parameter
/usr/include/string.h:118: error: declaration for parameter 'strspn' but no such parameter
/usr/include/string.h:116: error: declaration for parameter 'strsignal' but no such parameter
/usr/include/string.h:113: error: declaration for parameter 'strsep' but no such parameter
/usr/include/string.h:111: error: declaration for parameter 'strrchr' but no such parameter
/usr/include/string.h:110: error: declaration for parameter 'strpbrk' but no such parameter
/usr/include/string.h:108: error: declaration for parameter 'strnstr' but no such parameter
/usr/include/string.h:105: error: declaration for parameter 'strnlen' but no such parameter
/usr/include/string.h:104: error: declaration for parameter 'strndup' but no such parameter
/usr/include/string.h:102: error: declaration for parameter 'strncpy' but no such parameter
/usr/include/string.h:101: error: declaration for parameter 'strncmp' but no such parameter
/usr/include/string.h:100: error: declaration for parameter 'strncat' but no such parameter
/usr/include/string.h:98: error: declaration for parameter 'strmode' but no such parameter
/usr/include/string.h:96: error: declaration for parameter 'strlen' but no such parameter
/usr/include/string.h:94: error: declaration for parameter 'strlcpy' but no such parameter
/usr/include/string.h:93: error: declaration for parameter 'strlcat' but no such parameter
/usr/include/string.h:90: error: declaration for parameter 'strerror_r' but no such parameter
/usr/include/string.h:88: error: declaration for parameter 'strerror' but no such parameter
/usr/include/string.h:86: error: declaration for parameter 'strdup' but no such parameter
/usr/include/string.h:84: error: declaration for parameter 'strcspn' but no such parameter
/usr/include/string.h:83: error: declaration for parameter 'strcpy' but no such parameter
/usr/include/string.h:82: error: declaration for parameter 'strcoll' but no such parameter
/usr/include/string.h:81: error: declaration for parameter 'strcmp' but no such parameter
/usr/include/string.h:80: error: declaration for parameter 'strchr' but no such parameter
/usr/include/string.h:79: error: declaration for parameter 'strcat' but no such parameter
/usr/include/string.h:77: error: declaration for parameter 'strcasestr' but no such parameter
/usr/include/string.h:74: error: declaration for parameter 'stpncpy' but no such parameter
/usr/include/string.h:73: error: declaration for parameter 'stpcpy' but no such parameter
/usr/include/string.h:71: error: declaration for parameter 'memset' but no such parameter
/usr/include/string.h:70: error: declaration for parameter 'memmove' but no such parameter
/usr/include/string.h:68: error: declaration for parameter 'memmem' but no such parameter
/usr/include/string.h:66: error: declaration for parameter 'memcpy' but no such parameter
/usr/include/string.h:65: error: declaration for parameter 'memcmp' but no such parameter
/usr/include/string.h:63: error: declaration for parameter 'memrchr' but no such parameter
/usr/include/string.h:61: error: declaration for parameter 'memchr' but no such parameter
/usr/include/string.h:59: error: declaration for parameter 'memccpy' but no such parameter
/usr/include/strings.h:61: error: declaration for parameter 'strncasecmp' but no such parameter
/usr/include/strings.h:60: error: declaration for parameter 'strcasecmp' but no such parameter
/usr/include/strings.h:58: error: declaration for parameter 'rindex' but no such parameter
/usr/include/strings.h:57: error: declaration for parameter 'index' but no such parameter
/usr/include/strings.h:54: error: declaration for parameter 'flsll' but no such parameter
/usr/include/strings.h:53: error: declaration for parameter 'flsl' but no such parameter
/usr/include/strings.h:52: error: declaration for parameter 'fls' but no such parameter
/usr/include/strings.h:51: error: declaration for parameter 'ffsll' but no such parameter
/usr/include/strings.h:50: error: declaration for parameter 'ffsl' but no such parameter
/usr/include/strings.h:47: error: declaration for parameter 'ffs' but no such parameter
/usr/include/strings.h:44: error: declaration for parameter 'bzero' but no such parameter
/usr/include/strings.h:43: error: declaration for parameter 'bcopy' but no such parameter
/usr/include/strings.h:42: error: declaration for parameter 'bcmp' but no such parameter
/usr/include/stddef.h:61: error: declaration for parameter 'wchar_t' but no such parameter
/usr/include/stddef.h:49: error: declaration for parameter 'rune_t' but no such parameter
/usr/local/include/php/ext/standard/info.h:89: error: declaration for parameter 'register_phpinfo_constants' but no such parameter
php_mod_0.c:731: error: expected '{' at end of input
gmake[2]: *** [php_mod_0.o] Error 1
gmake[2]: Leaving directory `/usr/home/lduport/FreeAge/tests/testmodule-php'
gmake[1]: *** [testmodule-php] Error 2
gmake[1]: Leaving directory `/usr/home/lduport/FreeAge/tests'
gmake: *** [tests] Error 2
J'inclue differents sous dossier de PHP :
/
/main
/Zend
/TSRM
/ext/ereg/regex
/ext/standard
je vous ai d'ailleurs mis en gras la ligne de commande pour la compilation.

je vous met le code de php_mod_0.h :

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
#ifndef FREEAGE_PHP_MOD_0_INCLUDED
#define FREEAGE_PHP_MOD_0_INCLUDED
 
#ifdef __cplusplus
extern "C" {
#endif
 
#define FREEAGE_PHP_MOD_0_EXTNAME	"mod_0"
#define FREEAGE_PHP_MOD_0_EXTVER	NULL
 
#include "php.h"
 
#ifdef ZTS
#include "TSRM.h"
#endif
 
#include "net_types.h"
 
PHP_MINIT_FUNCTION(mod_0);
PHP_MINFO_FUNCTION(mod_0);
PHP_MSHUTDOWN_FUNCTION(mod_0);
 
/* mod_0 functions	*/
PHP_FUNCTION(session_open);
PHP_FUNCTION(session_open_result);
PHP_FUNCTION(session_open_result_fetch_array);
PHP_FUNCTION(session_reset);
PHP_FUNCTION(session_reset_result);
PHP_FUNCTION(session_reset_result_fetch_array);
PHP_FUNCTION(session_close);
PHP_FUNCTION(crypto_set_rsa_key);
PHP_FUNCTION(crypto_get_aes_params);
PHP_FUNCTION(crypto_get_aes_params_result);
PHP_FUNCTION(crypto_get_aes_params_result_fetch_array);
PHP_FUNCTION(crypto_begin);
PHP_FUNCTION(crypto_begin_result);
PHP_FUNCTION(crypto_begin_result_fetch_array);
PHP_FUNCTION(crypto_end);
 
 
/// session_open result declaration.
struct session_open_result
{
	net_sessid_t session_id;	///< The session_id choosen by the server, this session_id must be used for all subsequent calls to the server or they will fail.
};
 
/// session_reset result declaration.
struct session_reset_result
{
	net_sessid_t session_id;	///< The new session_id choosen by the server.
};
 
/// crypto_set_rsa_key params declaration.
struct crypto_set_rsa_key_params
{
	net_ubyte_t public_key [128];	///< The client public RSA key.
};
 
/// crypto_get_aes_params result declaration.
struct crypto_get_aes_params_result
{
	net_bool_t error;	///< False if ok, or true if an error occurred.
	net_ubyte_t aes_params [128];	///< 1024 random bits needed to compute the AES parameters, encrypted with the client public key.
};
 
/// crypto_begin result declaration.
struct crypto_begin_result
{
	net_bool_t error;	///< False if ok, or true if an error occurred.
};
 
 
/* Registration mod_0 inputs.	*/
extern zend_module_entry mod_0_module_entry;
#define phpext_mod_0_ptr &mod_0_module_entry
 
#ifdef ZTS
#define MOD_0_G(v) TSRMG(mod_0_globals_id, zend_mod_0_globals *, v)
//extern int mod_0_globals_id;
#else
#define MOD_0_G(v) (mod_0_globals.v)
//extern zend_mod_0_globals mod_0_globals;
#endif
 
#ifdef PHP_WIN32
#define MOD_0_API __declspec(dllexport)
#else
#define MOD_0_API
#endif
 
#ifdef __cplusplus
}
#endif
 
#endif
le fichier php_module.c est sensiblement le meme.
vous remarquez que la compilation dependent d'une lib precedemment compilée : libclientphp.so qui s'est compilée parfaitement avec les sources de php.

Merci d'avance