tchar.h pas trouvé sur Cygwin
-
09-10-2019 - |
Question
Je suis en cours d'exécution la dernière Cygwin sur Windows 7 (32 bits), et d'essayer de construire un projet open-source, RTAudio (il ne construit pas actuellement sur cette plate-forme).
L'un des problèmes que j'ai CONTOURNÉS est une erreur sur la ligne
#include <tchar.h>
.
Ma ligne de construction est:
g++ -O2 -Wall -Iinclude -DHAVE_GETTIMEOFDAY -D__WINDOWS_DS__ -c RtAudio.cpp -o RtAudio.o
L'erreur est:
tchar.h: No such file or directory
Si j'ajouter / usr / include / MinGW (qui contient tchar.h) à la liste des inclure les chemins, je reçois beaucoup plus d'erreurs.
J'ai travaillé autour du problème en ne pas utiliser LPCTSTR et la surcharge simplement une fonction qu'il a besoin pour const char*
et const wchar_t*
pour que je puisse éviter d'inclure tchar.h, mais est-il une meilleure façon de le faire?
La solution
tchar.h
est un en-tête de Windows. Le logiciel devra être porté à libiconv ou aux soins intensifs si elle a besoin plus que les notions de base.
Autres conseils
Si vous voulez construire cela pour Cygwin, vous devez vous assurer qu'il utilise les chemins de code Unix / Linux plutôt que ceux de Windows. En particulier, le WIN32 macro est souvent utilisé pour garder le code de Windows, mais qui est définie sur Cygwin aussi, de sorte que vous pourriez avoir à modifier ces gardes à #if defined(__WIN32__) && !defined(__CYGWIN__)
.
L'autre façon est bien sûr de construire ce natif pour Windows. Au sein de Cygwin, vous pouvez le faire en utilisant gcc-3 -mno-cygwin
ou le compilateur croisé MinGW-w64 qui a été récemment ajouté à la distro Cygwin.