开发者

tchar.h not found on cygwin

I'm running the latest cygwin on windows 7 (32-bit), and trying to build an open-source project, RtAudio (it doesn't currently bui开发者_Go百科ld on this platform).

One of the problems I've worked around is an error on the line #include <tchar.h>.

My build line is:

g++ -O2 -Wall -Iinclude -DHAVE_GETTIMEOFDAY -D__WINDOWS_DS__ -c RtAudio.cpp -o RtAudio.o

The error is:

tchar.h: No such file or directory

If I add /usr/include/mingw (which contains tchar.h) to the list of include paths, I get a lot more errors.

I've worked around the problem by not using LPCTSTR, and just overloading the one function that requires it for const char* and const wchar_t* so I could avoid including tchar.h, but is there a better way to do this?


tchar.h is a Windows header. The software will have to be ported to libiconv or ICU if it needs more than just the basics.


If you want to build this for Cygwin, you should ensure that it uses the Unix/Linux code paths rather than the Windows ones. In particular, the WIN32 macro is often used to guard Windows code, but that's defined on Cygwin too, so you might have to change any such guards to #if defined(__WIN32__) && !defined(__CYGWIN__).

The other way of course is to build this for native Windows. Within Cygwin, you can do this using gcc-3 -mno-cygwin or the MinGW-w64 cross compiler that was recently added to the Cygwin distro.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜