問題タブ [solaris-studio]
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.
c - コード内の C で Solaris lint 警告を抑制する方法
C コードの特定の行で lint 警告を抑制できるようにする必要があり、これをインライン ディレクティブで実行したいと考えています。これは、私が 64 ビットに移植するレガシー コードの非常に大きな本体のためのものであり、lint を実行する Makefile ではなくコードにディレクティブを配置したいと考えています。後者は非常にわかりにくいからです。
問題は、Solaris lint のドキュメントが、(私が知る限り) いくつかの警告タイプに対してのみこれを行う方法を指定していることです。
以前は、次の形式が使用されていました。Solaris のドキュメントでは、これが引き続き許可されていることが示されていますが、機能していないようです。問題を複雑にしているのは、Solaris lint がエラー番号を表示せず、代わりに E_CAST_INT_TO_SMALL_INT などの識別子を使用することです。
これは古い方法です (そして、コードには既に多くの方法があります):
solaris - solaris での mozilla のビルド
SunOS 11.2 で「mach build」を実行すると、configure が obj-i386-pc-solaris2.11/intl/icu/target ディレクトリで失敗し、C コンパイラが実行可能ファイルを作成できないと主張します。 MS コンパイラ フラグ '-MD'。環境で CC と SOLARIS_SUNPRO_CC を 'cc' に設定し、CXX と SOLARIS_SUNPRO_CXX を 'CC' に設定して 'mach' を実行しているにもかかわらず、このフラグは config/config.mk の RTL_FLAGS から来ているようです。しかし、その周りの「ifeq」のために、当然のことながら、それは起こるべきではありません。
誰でもこれを修正する方法を教えてもらえますか?
c++ - シグセットが見つかりません
次の例を検討してください。
CC test.cpp
成功します。
しかし
私も次のことを試しました:
しかし、同じエラーが発生します。-m64
どちらも役に立ちません。
- もありませんlstdc++ -lgcc_s -lCrunG3
。
OS: Solaris 11 コンパイラ: Oracle Solaris Studio 12.4 の CC
要求された出力:
<csignal>
の代わりに使用すると<signal.h>
、次のエラーが発生します。
oop - Solaris/Oracle Fortran コンパイラによるオブジェクト指向機能
私は、Oracle Solaris Studio 12.4 スイート (私が知る限り最新のもの) の fortran コンパイラを使用して OO fortran コードをコンパイルしようとしています。しかし、コンパイラはクラッシュします。これが私の問題の簡略版です。
それぞれ 1 つの型バインド プロシージャを持つ 2 つの単純な型を定義します。プロシージャの 1 つに、仮引数として別の型の変数があります。
このプログラムは、gfortran で正常にコンパイルおよび実行されます。
ただし、Solaris f95 でのコンパイルはクラッシュします。
ソース コードをさらに単純化すると、f95 は正常にコンパイルされます。たとえば、次の場合は正常に機能します。
type0
型にバインドされた手続きを持たないtype1
型にバインドされた手続きを持たない- 手続き
print_diff
は、以下以外の引数を持たないサブルーチンに置き換えられますself
私が間違っていることはありますか?Solaris コンパイラのインストールに問題はありますか? このコードを他の Solaris コンパイラで正常にコンパイルできる人はいますか? エラーコードの意味を知っている人はいますか(私はそれを見つけることができませんでした)?
c++ - Sun Studio と ""、1 行目: 不正フラグ (-)
"", line 1 : Illegal flag (-)
Sun Studio 12.3 の下で Solaris 11.3 (x64) でアセンブラー エラーを生成する問題を突き止めようとしています。Sun Studio コンパイラは、特別な種類の地獄です。
、、、、などを体系-xO2
的に-native
削除しても解決しません。Mozilla で同様のレポートを見つけましたが、デバッグ シンボルを削除しても問題は解決しませんでした。-m64
-Kpic
アセンブラ ファイルの最初の行は.file ...
(以下に示す) であるため、不正なフラグがどこから来ているのかわかりません。
が発生するのはなぜ"", line 1 : Illegal flag (-)
ですか?どうすれば修正できますか?
を追加する-v
と-keeptmp
、次のようになります。
c++ - Solaris での Developer Studio 12.5 とのリンク
Developer Studio 12.5 を使用して Solaris 11.3 にリンクする際に問題が発生しています。
コードは正常にコンパイルされているように見えますが、リンク段階で失敗します。
コマンド ライン (リンク オプション) から「-z defs」を削除すると、正常にリンクされます。「ldd libBlah.so」を実行しても、欠落している参照は表示されません。
同僚が「nm」を使用してシンボルを見つけましたが、これは静的な libCrun ライブラリ (共有ライブラリではありません) でのみ見つかりました。
マニュアルでは、'-zdefs' を使用して不足しているシンボルを指摘するようにアドバイスしていますが、これは以前に行った (makefile には既にそのフラグがありました)。
質問は簡単です。これについてどう考えるべきか、それについて何をすべきか?