tchar.h no se encuentra en cygwin
-
09-10-2019 - |
Pregunta
Estoy usando la última cygwin en Windows 7 (32 bits), y tratando de construir un proyecto de código abierto, RTAudio (no construye actualmente en esta plataforma).
Uno de los problemas que he trabajado en torno a un error en la línea
#include <tchar.h>
.
Mi línea de construcción es:
g++ -O2 -Wall -Iinclude -DHAVE_GETTIMEOFDAY -D__WINDOWS_DS__ -c RtAudio.cpp -o RtAudio.o
El error es:
tchar.h: No such file or directory
Si agrego / usr / include / MinGW (que contiene tchar.h) a la lista de incluir caminos, recibo muchos más errores.
He trabajado todo el problema al no utilizar LPCTSTR, y justo la sobrecarga de la una función que lo requiera para const char*
y const wchar_t*
por lo que podría evitar la inclusión de tchar.h, pero ¿hay una mejor manera de hacer esto?
Solución
tchar.h
es un encabezado de Windows. El software tendrá que ser portado a libiconv o UCI si se necesita más que sólo lo básico.
Otros consejos
Si usted quiere construir esto para Cygwin, usted debe asegurarse de que utiliza las rutas de código de Unix / Linux en lugar de los de Windows. En particular, el WIN32 macro se utiliza a menudo para proteger código de Windows, pero que está definido en Cygwin también, así que puede que tenga que cambiar cualquiera de estos guardias a #if defined(__WIN32__) && !defined(__CYGWIN__)
.
La otra manera, por supuesto, es la construcción de esta nativa para Windows. Dentro de Cygwin, puede hacerlo utilizando gcc-3 -mno-cygwin
o el compilador MinGW cruz-W64, que recientemente se ha añadido a la distribución Cygwin.