私たちはGCCでOCCIを使用しようとしています。 OCCIは、Sun Studioコンパイラを使用してコンパイルされます。 SunのネイティブコンパイラCCではなく、GCCでOCCIを使用する可能性はありますか?OCCI with GCC with SOLARIS
答えて
効果的に複数のC++ランタイムライブラリを混在させることはできません。
C++実行時の実装は非常に複雑です。この投稿は、複雑さのいくつかを説明します
Stability of the C++ ABI: Evolution of a Programming Language
C++ ABI
C++ ABIは、C ABIが含まれています。階層クラスオブジェクトの
レイアウト、つまり、基底クラスと仮想基本クラスへのポインタ部材
通過
レイアウト:また、以下 特徴をカバー隠し関数のパラメータ(例:this)
仮想関数を呼び出す方法
- ポインタのオブジェクトで
のVtableの内容及びレイアウト
ロケーションベースクラスオフセットを見つけるこのポインタ
ため
検索調整のvtableし
メンバへのポインタを使用して関数を呼び出す
テンプレートインスタンスの管理
外部名のスペル( "名前マングル")
建設と静的オブジェクトの破壊
投げや例外
のいくつかの詳細を引きます標準ライブラリ:
あなたはまた、別のCの++コンパイラで追加することができますメンバー
から
実装定義の詳細
のTypeInfoと実行時型情報
インライン機能へのアクセスを実装Solaris上でOCCIをGCCで直接使用することは効果的ではありません。
あなたは何か働くことができるかもしれませんが、あなたがすることは、最高でも非常に壊れやすいでしょう。次回のOSやC++のランタイムアップデートでは問題が発生する可能性があり、問題を解決できない場合があります。
非常に単純なアプリケーションを作成していない限り、Solaris Studioコンパイラを使用することを強くお勧めします。パフォーマンスプロファイリング、メモリチェック、さらには競合状態検出を含むツールスイート全体を理解しておくことをお勧めします。私の意見では、GCCで使用されるツールよりも優れています。
Solaris Studio(SS)コンパイラはいくつかのGCC機能を失います。 GCCの警告モードに近いものは何もありません。スタックプロテクターはなく、強化ソースはサポートされていません。 GCC/Linux Studio/Solarisを比較すると、メモリチェック、競合状態検出などのためのGCCの異なるサニタイザ(アドレス、未定義の動作など)は、SSで得られるものよりもはるかに優れています。プロファイリングについても同様のことが言えます。さらに、SSは現在のC++標準をサポートし、GCC拡張に追いつくのに苦労しています。 – maxschlepzig
@maxschlepzig *はあなたがSSで得るものよりも明らかに優れています*少なくとも私の好みは意見であり、それを事実と混同しないことを明確に述べました。 FWIW、最後に私はSPARCのGCCにはまだ '' -xmemalign = 1i'(https://docs.oracle.com/cd/E19205-01/819-5265/bjavc/index.html)のようなものがないことがわかりました。 SPARC上に作業コードを記述するためのバーは、GCCを使用するほうがずっと高いです。 –
- 1. gcc with gcc 4.4.3
- 2. CentOS openmp with gcc 4.1.2
- 3. バージョン情報.EXE with gcc and windres
- 4. コンパイルqt 4.7.3 on mingw with gcc 4.6
- 5. oracleパイプライン関数with with with with clause
- 6. oracle with group with grouping with
- 7. Macbook with java with java with
- 8. Maven with Proguard with jar-with-dependencies
- 9. "with with macro" C
- 10. for ... with ... with
- 11. Laravel Eloquent With()With()
- 12. 。nearest with with()
- 13. WITH WITH BigQuery
- 14. SQL update with with
- 15. @Output with angle with
- 16. select.select()with regular files
- 17. PHP Foreach with keys with Foreach with keys
- 18. 使用の違い@RequestMapping with with with method
- 19. WPF with MVC with WCF with async await pattern
- 20. Verilog with with with条件付き
- 21. Black Screen with MSAA with Android with Vulkan
- 22. JNI with gradle
- 23. ストリームビデオwith websocket with node
- 24. bash with symbol with split
- 25. C#、static with const with
- 26. NSMutableURLRequest with "=" char with parameters
- 27. ImageButton with AndroidAdapter with BaseAdapter
- 28. struct with struct with struct
- 29. Crypto ++ with Omnet ++ with Windows
- 30. File.open with block withブロック
試してみる必要があります。 C++ ABIは複雑であり、問題がある可能性があります。 – ibre5041
サードパーティのライブラリ以外にも、この問題を解決するためのOracleライブラリがありますか? –
私の個人的な意見は、OCIを中心に他のオープンソースのC++を使用する方が良いということです。 OCCIより。 – ibre5041