問題タブ [sunstudio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
compiler-flags - 共有ライブラリでの PIC オブジェクトと非 PIC オブジェクトの混在
この質問は、この質問とその回答に関連しています。
作業中のビルドに醜さを発見しました。状況は次のようになります (gmake 形式で記述)。これは、特に sparc および x86 ハードウェアの 32 ビット メモリ モデルに適用されることに注意してください。
明らかに、PIC を使用してコンパイルしたオブジェクトと使用せずにコンパイルされたオブジェクトを共有オブジェクトに混在させることができます (これは何年も使用されています)。私は PIC について、それが良いアイデアであるかスマートであるかを判断するのに十分な知識がありません。私の推測では、この場合は必要ではなく、むしろ誰かがタッキング時に正しい方法を見つけることに十分に関心を持っていなかったために起こっているのです。ビルドの新しいものについて。
私の質問は:
- これは安全ですか
- それは良い考えですか
- その結果、どのような潜在的な問題が発生する可能性がありますか
- すべてを PIC に切り替えた場合、注意が必要な明らかでない落とし穴はありますか。
c++ - constからnon-constポインタテンプレート引数の変換
VC10とGCC4.4は以下を受け入れますが、SunStudio12は受け入れません。
Sun Studio12の文句:
エラー:std :: pair <char * const、int>を使用してstd :: pair <char *、int>を初期化することはできません。
これが発生している理由と、SunStudioにこれを無視させる方法についてのアイデア。私はサードパーティのライブラリを使用していますが、この種のことだけを書き直すのは面倒です。
c++ - SunStudio C++ コンパイラでのアライメント
4 バイトでアラインされた 2 バイト変数の型エイリアスを宣言する必要があります。
GCC、XL C/C++ (AIX)、aCC (HP-UX) では、次のコードを使用できます。
Windowsでは、次を使用できます。
SunStudio C++ 11 で同じ型を宣言するにはどうすればよいですか?
「pragma align」は、グローバル変数または静的変数に対してのみ機能し、変数名が必要なため、適切ではありません。
c - セグメンテーション違反を引き起こす main() 内の構造体定義
main() 内で構造を定義することはできませんか。セグメンテーション違反を取得するためだけに次のことを試しました。
しかし、構造体定義を外に出すとすぐに機能します。
なぜこれが起こっているのか分かりません。これには、Solaris SunStudio コンパイラを使用しています。
solaris - Solaris11にシステムヘッダーファイルがないようです
ここからSolaris11x86を(qemu環境に)インストールしました:http ://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html
ここからSolaris11用の/optSun Studio 12.3 x86をアンタールしました:http ://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html
ただし、コンパイラは、sys / types.hやinttypes.hなどのシステムヘッダー、またはint32_tを定義する可能性のある場所を見つけることができません。たとえば、dtrace.hヘッダーはsys / types.hに依存していますが、見つかりません。パッケージか何かが足りないかのように。Linux(ソースを含む多くのディストリビューション)以外で作業したことはなく、迷子になっています。私は何が欠けていますか?
c++ - SunStudio12でのテンプレートコンパイルエラー
Sun Studio 12.1に移行し、新しいコンパイラ[CC:Sun C ++ 5.10SunOS_sparc2009/06/03]を使用します。以前のバージョンのSunCompiler[CC:Sun WorkShop 6 update 2 C ++ 5.3 2001/05/15]で正常にコンパイルされたコードをコンパイルしているときに、コンパイルエラーが発生します。
これは私が得るコンパイルエラーです。
"Sample.cc":エラー:main()に必要なLoopThrough(int [2])に一致するものが見つかりませんでした。1エラーが検出されました。***エラーコード1。
コード:
Genericバージョンでコードのコメントを外すと、コードは正常にコンパイルされ、Genericバージョンが呼び出されます。拡張機能が無効になっているMSVC2010でこの問題が発生することはなく、ideoneでも同じ問題が発生します。関数の特殊バージョンが呼び出されます。問題は、これはSunCompilerのバグですか?
はいの場合、どのようにしてバグレポートを提出できますか?
compiler-construction - Sun Studio 12 でコンパイル、Sun Studio 10 で実行
Sun Studio 10 を搭載した Solaris 10 Sparc 64 ビット マシンで誰かが実行できるように、プログラムをコンパイルしてリンクする必要があります。
Solaris 10 Sparc 64 ビットのマシンを使用していますが、Oracle サイトでダウンロードできる Sun Studio 11 および 12 しか見つかりませんでした。古いため、Sun Studio 10 はダウンロードできないようです。
私の質問は、Sun Studio 10 でシームレスに実行できるように、Studio 12 を使用して (一連のフラグ設定を使用して) プログラムをコンパイルする方法はありますか?
ご指導ありがとうございました
solaris - OracleSolarisの方法
すべて、デスクトップにOracleSolarisをインストールしたところ、2つの質問があります。
これはWindows7のデュアルブートシステムです。これらのシステムが相互に認識できるようにするには、何をする必要がありますか?「OpenSolarisntfsmount」をグーグルで検索しましたが、人々が参照している2つのパッケージFSWpartとFSWfsmiscが機能していないようです。Windows 7からそれを行うための解決策はありますか?同じマシンでアクセスする必要があるため、Sambaはオプションではありません。
また、SunStudioの最新バージョンをダウンロードしました。これによると、「solarisstudio.sh」を実行する必要があります。問題は、アーカイブにそのようなファイルがないことです。私は何をしますか?
お手伝いありがとう。
c++ - Sun Studioでの大規模なC++システムの編成(NetBeans)
私のグループは、複数の実行可能ファイルと多くの静的ライブラリを含むc++システムを維持しています。それは現代的なアイデアなしで、すなわちemacsで開発されました。Sun Studio(NetBeans)の使用を開始したいと思います。Sun Studio内で多数のプロジェクトを編成する方法を説明するリソースはありますか?VisualStudioを使用した以前のプログラムでは、すべての「プロジェクト」が単一の「ソリューション」の一部でした。サンスタジオにそのようなものがあるのだろうか?
c++ - デバッグ シンボルを使用してコンパイルするには、追加のライブラリが必要ですか?
奇妙な問題があります: オブジェクト ファイルをでビルドすると、ツールが を介して間接的に依存して-g
いる からのシンボルが見つからないというエラーがリンカから突然出てきます。これは、なしでは起こりません。libbar
libfoo
-g
これらのシンボルは、デフォルトのパラメータから、 のlibfoo
オブジェクトである関数に由来しているようですlibbar
。ただし、これらの関数は私のツールでは使用されません。
この追加の依存関係がデバッグ ビルドによってどのように引き起こされるのか疑問に思います。使用するシンボルだけでなく、すべてのシンボルに対してこれらのデバッグ シンボルが生成され、これらのデバッグ シンボルに対してデフォルトのパラメーターも必要になる可能性はありますか?
これは、Solaris 上の Sun Studio 5.10 の場合です。