5

I'm running the latest cygwin on windows 7 (32-bit), and trying to build an open-source project, RtAudio (it doesn't currently build 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?

Jason Sundram
  • 12,225
  • 19
  • 71
  • 86
  • Why are you using Cygwin? RtAudio claims to have native Windows support; you'd be better off using MinGW directly, or a Microsoft compiler. It looks like the RtAudio distribution includes a Visual Studio setup that may be informative. – Porculus Nov 13 '10 at 00:14
  • @Porculus, good question. Other components that I'm using require a linuxy environment. – Jason Sundram Nov 15 '10 at 19:23

2 Answers2

5

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.

Ignacio Vazquez-Abrams
  • 776,304
  • 153
  • 1,341
  • 1,358
2

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.

ak2
  • 6,629
  • 31
  • 27
  • could you explain what you mean by `#if defined(__WIN32__) && !defined(__CYGWIN__).` where should i add that header ? – MistyD Jan 28 '15 at 19:36