tchar.h non trovato su cygwin
-
09-10-2019 - |
Domanda
Sto utilizzando l'ultima Cygwin su Windows 7 (32 bit), e cercando di costruire un progetto open-source, RTAudio (attualmente non costruire su questa piattaforma).
Uno dei problemi con cui ho lavorato in giro è un errore sulla linea
#include <tchar.h>
.
La mia linea di compilazione è:
g++ -O2 -Wall -Iinclude -DHAVE_GETTIMEOFDAY -D__WINDOWS_DS__ -c RtAudio.cpp -o RtAudio.o
L'errore è:
tchar.h: No such file or directory
Se posso aggiungere / usr / include / mingw (che contiene tchar.h) all'elenco dei percorsi di inclusione, ho un sacco più errori.
Ho lavorato tutto il problema non utilizzando LPCTSTR, e solo sovraccaricare quella funzione che richiede per const char*
e const wchar_t*
così ho potuto evitare di includere tchar.h, ma c'è un modo migliore per fare questo?
Soluzione
tchar.h
è un colpo di testa di Windows. Il software dovrà essere portato su libiconv o terapia intensiva, se ha bisogno di più non solo le basi.
Altri suggerimenti
Se si vuole costruire questo per Cygwin, è necessario assicurarsi che utilizza i percorsi di codice Unix / Linux, piuttosto che a quelli di Windows. In particolare, la WIN32 macro viene spesso utilizzato per la guardia codice di Windows, ma che è definita su Cygwin troppo, quindi potrebbe essere necessario modificare tali guardie di #if defined(__WIN32__) && !defined(__CYGWIN__)
.
L'altro modo, naturalmente, è quello di costruire questo per Windows nativo. All'interno Cygwin, è possibile farlo utilizzando gcc-3 -mno-cygwin
o il compilatore MinGW croce-W64 che è stato recentemente aggiunto alla distro Cygwin.