С++ libsndfile и mac osx

Я довольно часто встречал этот вопрос, но я новичок в С++ и пытался следовать каждому ответу. Я пытаюсь использовать библиотеку libsndfile с XCode и mac osx mavericks. Однако проблема заключается в

/* The following typedef is system specific and is defined when libsndfile is
 ** compiled. sf_count_t can be one of loff_t (Linux), off_t (*BSD), off64_t
 ** (Solaris), __int64_t (Win32) etc. On windows, we need to allow the same
 ** header file to be compiler by both GCC and the microsoft compiler.
 */

#ifdef _MSCVER
typedef __int64_t       sf_count_t ;
#define SF_COUNT_MAX            0x7fffffffffffffffi64
#else
typedef __int64_t   sf_count_t ;
#define SF_COUNT_MAX            0x7FFFFFFFFFFFFFFFLL
#endif

где я получаю сообщение об ошибке «Неизвестное имя типа» __int64. Я понимаю, что это связано с тем, что __int64 предназначен для Windows, но как я могу изменить это для Mac?


person Ryanas    schedule 05.01.2014    source источник


Ответы (2)


Я не знаком с этой библиотекой. Вы уверены, что включили правильный заголовочный файл. Судя по комментарию, этот файл предназначен для использования с Windows. Тем не мение...

__int64_t должен быть определен в каком-то другом заголовке. Это typedef для длинного длинного. Чтобы обойти это, вы можете добавить typedef long long __int64_t; прежде чем включить заголовок.

person son of the northern darkness    schedule 05.01.2014

Я нашел кое-что, что работает. Всем, кто хочет использовать библиотеку libsndfile с Mac, следует посмотреть на это:

https://github.com/angeloseme/ofxLibsndfileRecorder

Загрузите файлы и создайте дамп всех файлов в папке src. Работает отлично. Кредит автору.

person Ryanas    schedule 05.01.2014