これまでのところ、C ++での開発はすべてWindowsを対象としていましたが、いつかLinuxを対象にすることを常に心に留めていました。したがって、クロスプラットフォームライブラリを選択し、コードを可能な限り移植可能に保つ(または移植性のないコードの代替実装を提供する)必要があることを認識しています。したがって、この質問はコードコンパイルの問題とは関係ありません。
LinuxとWindowsの両方をターゲットにするときに開発者が直面する一般的な問題は何ですか?特に、ただしこれらに限定されません。
構成ファイルを処理するためのベストプラクティス。Windowsでは、これはかなり恣意的であるように思われます。ソフトウェアが構成をプログラムフォルダー内、ユーザーのフォルダー(appDataの下)、およびレジストリに保存するのを見てきました。Linuxでは、専用の構成フォルダー(/ etc)に重点が置かれているようです。コードでこれらの違いをどのように処理する必要がありますか?場所をハードコーディングしますか、それとも相談できるシステム定義の関数がありますか?
(1)と同じですが、ロギング用です。
プロジェクトファイルの同期を維持するにはどうすればよいですか?たとえば、Visual Studioプロジェクトファイルで何かを更新する場合、通常、作業しているLinux環境で同等のものを手動で更新する必要がありますか、それともこれを回避するために一般的に使用される方法がありますか?
コード内のプラットフォーム実装の違いを処理するための最良の方法は何ですか?を使用する必要が
#ifdef
ありますか、それともプラットフォーム固有のコードを別のファイルに保持し、プロジェクトに含めるファイルを指定させる必要がありますか?私が考えたり研究したりし始めるべきだと思っていないことは他にありますか?