tchar.h не найден на Cygwin - PullRequest
       45

tchar.h не найден на Cygwin

4 голосов
/ 12 ноября 2010

Я использую последнюю версию 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, но есть ли лучший способ сделать это

Ответы [ 2 ]

5 голосов
/ 12 ноября 2010

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

2 голосов
/ 13 ноября 2010

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

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

...