8

Visual Studio 2010 を使用してコンパイルしている開発者から C++ ソース コードを受け取ったので、GCC、LLVM、Visual Studio の他のバージョンなど、さまざまなコンパイラで再コンパイルする必要があります。 VS2010 の警告) は、他のコンパイラではコンパイルに失敗します。

彼のコードがきれいに移植される可能性を高めるために、VS2010 で設定できるコンパイラ設定はありますか?

4

1 に答える 1

3

言語レベルでは、特効薬はありません。あなたができる最善のことは、言語標準にできるだけ忠実に固執することです. ほとんどのコンパイラには、特定のコンパイラに固有の拡張機能を利用する場合に警告またはエラーを発行するオプションがあります (Visual C++ では、/Za非標準の言語拡張機能が無効になります)。しかし、これは完璧ではありません。標準を完全に 100% 実装しているコンパイラはまだないため、厳密に準拠したコードでも移植性の問題が残る可能性があります。

また、多くの日常的なコードは、拡張機能や未定義またはコンパイラ定義の動作を実際に利用していることに注意してください。

また、規格が異なることを許可していることにも注意する必要があります。たとえば、int のような型は、システムによってサイズが異なる場合があります。Windows は LLP64 ですが、ほとんどの Unix 派生 OS は LP64 です。

<windows.h>システム レベルでは、プログラマーがシステム固有のもの (または など)に依存していないことを確認する完璧な方法を知りません<pthreads.h>

最善の策は、すべての開発者がすべてのターゲット プラットフォームでテスト ビルドを簡単に実行できるようにすることです。

于 2013-03-15T17:02:18.590 に答える