Вопрос

Я запускаю последнюю версию cygwin в Windows 7 (32-разрядная версия) и пытаюсь создать проект с открытым исходным кодом, RtAudio (в настоящее время он не построен на этой платформе).

Одна из проблем, с которой я работал, - это ошибка в строке #include <tchar.h>.

Моя линия сборки такова:

g++ -O2 -Wall -Iinclude -DHAVE_GETTIMEOFDAY -D__WINDOWS_DS__ -c RtAudio.cpp -o RtAudio.o

Ошибка заключается в:

tchar.h: No such file or directory

Если я добавлю /usr/include/mingw (который содержит tchar.h) в список путей включения, я получу намного больше ошибок.

Я обошел проблему, не используя LPCTSTR, а просто перегрузив одну функцию, которая требует этого для const char* и const wchar_t* таким образом, я мог бы избежать включения tchar.h, но есть ли лучший способ сделать это?

Это было полезно?

Решение

tchar.h это заголовок Windows. Программное обеспечение должно быть портировано в Libiconv или ICU, если ему нужно больше, чем просто основные основы.

Другие советы

Если вы хотите создать это для Cygwin, вы должны убедиться, что он использует пути к коду Unix / Linux, а не Windows.В частности, WIN32 макрос часто используется для защиты кода Windows, но он также определен в Cygwin, поэтому вам, возможно, придется изменить любые такие средства защиты на #if defined(__WIN32__) && !defined(__CYGWIN__).

Другой способ, конечно, создать это для родной Windows.В Cygwin вы можете сделать это с помощью gcc-3 -mno-cygwin или кросс-компилятор MinGW-w64, который недавно был добавлен в дистрибутив Cygwin.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top