在Cygwin上找不到TCHAR.H
-
09-10-2019 - |
题
我正在Windows 7(32位)上运行最新的Cygwin,并尝试构建一个开源项目, 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__)
.
当然,另一种方法是为本机窗户构建此功能。在Cygwin中,您可以使用 gcc-3 -mno-cygwin
或最近添加到Cygwin发行版中的MINGW-W64交叉编译器。
不隶属于 StackOverflow