Привет всем.
Столкнулся с такой проблемой. Есть исходники на C, это либа - клиент к работающему ПО, хочу написать модуль-обертку, чтобы иметь интерфейс к этому ПО из Perl. Понял мой путь - XS.
Немного покопав, нашел такой способ: http://search.cpan.org/~rjbs/perl-5.12.3/utils/h2xs.PL#Extension_based_on_.h_and_.c_files
Делал все по инструкции, несколько раз, все разы получал такую ошибку:
| Код | Expecting parenth after identifier in `size_t port' after `size_t '
|
Это уже при при выполнении такой команды:
| Код | h2xs -Oxan Ext::Ension header.h
|
Никто с такой ошибой не сталкивался?
Предположительно затык происходит в строке 27. Вот сам header-файл:
| Код | #ifndef __VOICEMAN_VMCLIENT_H__ #define __VOICEMAN_VMCLIENT_H__
#ifdef __cplusplus #define EXTC extern "C" #else #define EXTC extern #endif /* __cplusplus*/
#define VOICEMAN_LANG_NONE 0 #define VOICEMAN_LANG_ENG 1 #define VOICEMAN_LANG_RUS 2
#define VOICEMAN_PROCMODE_ALL 0 #define VOICEMAN_PROCMODE_SOME 1 #define VOICEMAN_PROCMODE_NONE 2
typedef int vm_connection_t; #define VOICEMAN_BAD_CONNECTION (vm_connection_t)-1
typedef int vm_result_t; #define VOICEMAN_ERROR (vm_result_t)-1 #define VOICEMAN_OK 0
EXTC vm_connection_t vm_connect(); EXTC vm_connection_t vm_connect_unix(char* path); EXTC vm_connection_t vm_connect_inet(char* host, size_t port); EXTC void vm_close(vm_connection_t con); EXTC vm_result_t vm_text(vm_connection_t con, char* text); EXTC vm_result_t vm_stop(vm_connection_t con); EXTC vm_result_t vm_letter(vm_connection_t con, char* letter); EXTC vm_result_t vm_tone(vm_connection_t con, size_t freq, size_t lengthms); EXTC vm_result_t vm_pitch(vm_connection_t con, unsigned char value); EXTC vm_result_t vm_rate(vm_connection_t con, unsigned char value); EXTC vm_result_t vm_volume(vm_connection_t con, unsigned char value); EXTC vm_result_t vm_procmode(vm_connection_t con, unsigned char procmode); EXTC vm_result_t vm_family(vm_connection_t con, unsigned char lang, char* family);
#endif /*__VOICEMAN_VMCLIENT_H__*/
|
Подскажите куда хоть копать, а то я не знаком ни с C, ни с XS. Заранее благодарен. |