Tchar.hはCygwinで見つかりません
-
09-10-2019 - |
質問
Windows 7(32ビット)で最新のCygwinを実行しており、オープンソースプロジェクトを構築しようとしています。 rtaudio (現在、このプラットフォーム上には構築されていません)。
私が回った問題の1つは、行のエラーです#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/include/mingw(tchar.hを含む)を追加すると、より多くのエラーが得られます。
私はLPCTSTRを使用しないことで問題を回避し、それを必要とする1つの関数を過負荷にしています const char*
と const wchar_t*
それで、私はtchar.hを含めることを避けることができますが、これを行うためのより良い方法はありますか?
解決
tchar.h
Windowsヘッダーです。ソフトウェアは、基本だけではない場合は、libiconvまたはICUに移植する必要があります。
他のヒント
Cygwin用にこれを構築する場合は、WindowsのパスではなくUnix/Linuxコードパスを使用することを確認する必要があります。特に、 Win32 マクロはWindowsコードを守るためによく使用されますが、それはCygwinでも定義されているため、そのような警備員を変更する必要があるかもしれません #if defined(__WIN32__) && !defined(__CYGWIN__)
.
もちろん、もう1つの方法は、ネイティブウィンドウ用にこれを構築することです。 Cygwin内では、これを使用できます gcc-3 -mno-cygwin
または、最近Cygwinディストリビューションに追加されたMINGW-W64クロスコンパイラ。