Очевидно, проблема в том, что заголовок <search.h>
на вашей платформе не определяет тип структуры. Как отмечено в комментарии к вопросу, на машине с Linux RHEL5 определение 'struct hsearch_data
', когда определено __USE_GNU
, которое, в свою очередь, определяется, когда _GNU_SOURCE
определено так, как у вас. Однако не все машины являются Linux. Я отмечаю, что POSIX определяет заголовок <search.h>
, но не определяет структуру, которую вы хотите использовать.
Вам нужно будет отследить, где проект определяет структуру, и решить, как вы можете сделать это доступным для этого кода. Это может быть просто - если структура безопасно отделена в заголовке, который может быть безопасно включен. Это может быть сложно, если заголовок, который определяет структуру, также определяет другие вещи, которые вы не можете использовать.
Поскольку вы пытаетесь сохранить тот же интерфейс, что и исходный код, вы должны стремиться использовать исходный заголовок для обеспечения правильного определения интерфейса.