2017-03-16 7 views
0

Visual Studioプロジェクトにdirent.hを含める。私は、UNIXとWindowsの両方と互換性があることを望みます。だから私はhttps://github.com/tronkko/direntの使用を検討しています。そのプロジェクトでは、ドキュメントは言う:ウィンドウに.hパスを含めるが、ビジュアルスタジオではunixで省略する

独自のソースコード と一緒にdirent.h配布したい場合は、コピーして追加 、プロジェクト内に新しいサブディレクトリに/ dirent.hファイルを含めますそのディレクトリにはWindowsのパスが含まれ、 にはLinux/UNIXのディレクトリは含まれていません。これにより、 のプロジェクトをLinux/UNIXのネイティブのdirent.hに対してコンパイルしながら、 をMicrosoft Windowsの機能に置き換えることができます。

これはビジュアルスタジオで行う手順ですか? (私は2017バージョンを使用していますが、古いバージョンと似ていると思います)

+0

は、Visual Studioのではなく、他のビルドシステムを使用している場合は、あなたのコード:

#ifdef _MSC_VER #include "stuff specific to Microsoft Visual Studio" #else #include "stuff not specific for Microsoft Visual Studio" #endif 

をあなたのケースでは、あなたのような何かをしたい場合がありますUNIX上で自動的にコンパイルすることはできません。まともな勧告はCMakeだろうが、あなた自身の研究をして、Stack Overflowに関する意見に基づく質問はしないでください。 –

+0

プロジェクトのプロパティシートを使用します。 – stark

+0

@ TatsuyukiIshi Visual Studio 2017では、Linux用のC++プロジェクトのコンパイルがサポートされるようになりました。 – roalz

答えて

2

#includeを区別するための古典的な解決方法は、#ifや#ifdefなどのプリプロセッサディレクティブを使用することです。

たとえば、あなたが使用することができます。

#ifdef _MSC_VER 
#include "msvc/dirent.h" 
#else 
#include <dirent.h> 
#endif 
関連する問題