私はC++ 14を使用してクロスプラットフォームのサーバソフトウェアを開発しています。異なるバージョンのWindowsにバイナリとして出荷したいと思っています。 Linux。 Windowsでは、すべての依存関係が静的にリンクされたバイナリを作成しました。 Windows Serverのすべてのバージョンでこのバイナリをインストールして実行することができました。Linux上でC++ 14を使用し、異なるLinuxリリースをターゲットにした出荷バイナリ
RHEL6.4以降で動作するRed Hat Enterprise Linuxのバイナリを生成するにはどうすればよいですか?
LinuxでC++ 14をサポートするには、バージョン5以降のGCCを使用する必要がありますか? Red Hat Enterprise Linuxのバージョンは、C++ 14をサポートするGCCバージョンでは提供されないようですか?私が正しく理解していれば、Red Hat Developer Toolset 4.1.0を使用してC++ 14をサポートするGCCバージョンを取得する必要がありますか?
Red Hat Developer Toolset 4.1.0はRHEL6.5以降をサポートしているようですが、私はそれを使用して暮らすことができます。 Red Hat Developer Toolset 4.1.0を使用してRHEL6.5でソフトウェアをコンパイルすると、どうすればリンクできますか?
Developer Toolset 4.1.0のドキュメントを読むと、ABIとの互換性の問題があると思われ、Red Hatは本番ソフトウェアの開発に-std = C++ 98の使用を推奨していますか?つまり、同じ種類のディストリビューション内であっても、C++ 14を使用して別のLinuxバージョンで実行できるバイナリを作成することはできませんか?
この問題を明確にするための助けがあれば幸いです。
私はLinuxのすべてのライブラリをWindowsのようにあなたのプログラムに静的にリンクできるはずだと思います。それでも問題が解決しない場合は、必要な依存関係を持つバイナリをいつでも出荷することができます。 – Rakete1111
注:LGPLソフトウェアが含まれていると、静的リンクによってライセンス準拠の問題が発生する可能性があります。 –
私はいつもそれを疑問視しました。何年も前に、ローカルでコンパイルするソースをリリースするか、文字通りすべてのディストリビューションのバージョンごとに1つのバイナリをリリースする必要がありましたが、現在はTeamSpeak 3 Serverのようなソフトウェアがあります。どちらに関係なく私はLinuxの人ではないので、何が可能になったのか分からないが、明らかに彼らは道を開いた。 – Havenard