2017-12-22 14 views
1

私はVisual Studio 2015で作業していて、 "nullptr"、 "initializer list"などのC++ 11の機能だけでなく、std :: librariesを使用していくつかのプロジェクトを作成しています「auto」というキーワードを使用します。私はまた "stdafx"プリコンパイルされたヘッダーを使用します。Visual Studio 2015 <=> QtCreator 5(C++)コード移植性

近い将来、他の人(おそらくVS2015を使用しない人)に私の.hと.cppコードを提供するつもりです。いくつか質問があります:

1)自分のコードを提供する前に、何を準備したらよいですか?
2)今後Linux環境(QtCreatorを使用)でコードが正しく動作するようにするにはどうすればよいですか?
3)QtCreator C++ 11環境のlinuxとWindows版でコードを移植したい場合は、これらのライブラリをすべて使用しても問題ありません(互換性& &ポータブル)
4)何が間違っている可能性があり、また私は何を心に留めておくべきですか?

+1

これを絞り込んでください。質問ごとに1つの質問。これはSOフォーマットでは広すぎます。 – Ron

+2

あなたのコードが他のシステムや異なるコンパイラでeaslyビルドされていたら、 'cmake'を考えてください。 –

+0

あなたのタイトルは混乱していますか、混乱しています。 IDEはコードの移植性とは関係ありません。 –

答えて

5

QtCreatorはLinux環境ではなく、ポータブルです。あなたのプロジェクトがQtベースの場合は、Qt SDKのmingwバージョンをインストールすることができます。これはCreatorが(ほとんど)Linuxのプラットフォーム上でアナログをエミュレートできるようにします。

移植性は、IDEではなく、ツールチェーンによって定義されます。コンパイラ、ライブラリ、makeユーティリティです。

これらの名前は、ライブラリではなくヘッダーファイルです。

ISO C++には、互換性のあるコンパイラがサポートする必要があるヘッダファイルのリストが含まれています。あなたはここでそれらを確認することができます。

http://en.cppreference.com/w/cpp/header

をこれmath.h C++ヘッダーではありません、<cmath>と交換し、strsafeは、その使用量は交換する必要があり、他のプラットフォーム上の任意のアナログせずに、Microsoftのヘッダです。

プロジェクトが異なるプラットフォーム上に構築されることを意図しており、両方の機能を同じ方法で実装することはできない場合は、特定のプラットフォーム向けにプロジェクトを構成できるツールチェーンの使用を検討する必要があります。例えば、cmake。

関連する問題