問題タブ [compiler-options]
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++ - Microsoft Visual Studio のコンパイル オプション /DPROFILE および /UPROFILE の意味は何ですか?
従来のネイティブ C++ プロジェクトがあります。コマンド ライン プロパティ ページでは、追加オプションとして /DPROFILE が追加されています。削除したいです。でも安全かどうかはわかりません。あちこち探しました。残念ながら、/DPROFILE と /UPROFILE に関する説明は見つかりませんでした。MSDN がそれらに関するページを知っている人はいますか? そして、それらは何に使用されますか?
debugging - NaN が最適化でコンパイルされた場合にのみ表示される場合、数値コードのデバッグを開始する方法は?
次の場合、数値コードのデバッグを開始するための一般的な戦略は何ですか?
- 積極的な最適化フラグを使用してコンパイルされたコードは、出力に時折 NaN と Inf を生成します。
-g
デバッガーで実行するために(これは を意味する) でコンパイルされたコードは-O0
、NaN と Inf をもう生成しませんか?
この場合、ポートランド グループの C++ コンパイラである pgCC を使用し、最適化オプションを使用しました。
-w -fast -O3 -Mipa=fast -Mfprelaxed -Minline=levels:10
そしてちょうど
-w -g
デバッグ バージョン用。しかし、同様の状況が同様に発生する可能性があると確信しg++
ています。
編集: print ステートメントを追加することはあまり魅力的なオプションではありません。コードは私が書いたものではなく、数千行もあり、検索を絞り込む方法がわかりません。NaN はどこからでも発生する可能性があります。
visual-studio - '/fp:fast' および '/Za' は Visual C++ と互換性がありません
Visual 2008 SP1 の問題で立ち往生しています。
コンパイラは次の結果を返します。
「/fp:fast」と「/Za」は互換性がありません
問題は、プロパティで /Za を使用しなかったことです..そのため、オプションが設定されていないときに競合が発生する理由がわかりません。
これが私のプロジェクトのプロパティで生成されたコマンドラインです:
ご覧のとおり、/fp:fast は設定されていますが、/Za は設定されていません。
/Za を間接的に参照する可能性のある別のオプションはありますか?
もう少し掘り下げた後、 BuildLog.htm ファイルが言っていることに気付きました:
この 2 番目の一時ファイルが作成される理由はわかりますか? プロジェクトで修正しなければならないプロパティはありますか?
[編集] ハンスのおかげで、私は問題を理解しました。プロジェクト内のファイルの 1 つに、問題の原因を認識していない別のコンパイラ オプションが含まれていました。buildlog.htmファイルのおかげでどれだったのかわかりました
c++ - テンプレートパラメータを持つクラスから派生したg ++
次のコードを検討してください。
「影響を受ける行」とコメントされた行で、g++ (4.7) は次のように述べています。
今私は疑問に思っています:
- テンプレート パラメータ T が存在しない場合、このエラーは発生しません。違いはなんですか?
- g++ は明らかにこの問題を解決できます (-fpermissive を追加すると、正常にコンパイルされます)。私は、g++ が「ユーザー」 (プログラマー) としての私にとって最高のエクスペリエンスを作ろうとしていると想定しています。g++ がこのコードを受け入れない場合、私にとってどのような利点がありますか?
ありがとう!ネイサン
c - インライン アセンブリ パラメータの即時値伝播を有効にする特定の GCC フラグは何ですか?
次の x86 コード例を検討してください。
私がそれを構築する場合:
それはうまく構築されます。
(最適化なし)でビルドした場合:
'5'
値が即時値としてインライン関数テストに伝播されないため、アセンブリ段階で失敗し、制約に失敗します。
デバッグを容易にするために、関連のない他の最適化をオンにせずにこのコードをコンパイルできるようにしたいと考えています。
理論的には、詳細な GCC マニュアル-O
に記載されている一連の GCC 最適化オプションを一度に有効にする簡単な方法です。残念ながら、この動作をオンにする特定の GCC フラグを見つけることができませんでした。
何か案は?
明確化: 疑問を解消するために、コード スニペットは単なる例です。私がやろうとしていることを示すことを除けば、それ自体ではあまり意味がありません。実際の使用例には、C コンストラクトでラップしようとしている引数として即値のみを使用できるカスタム プロセッサの命令が含まれます。マクロは確かにそのトリックを行いますが、マクロの通常のすべての欠点に悩まされているため、私はそれを避けようとしています.
更新:疑問に思った人のために、マクロも機能しません。ここではインライン関数はまったく役割を果たしていないようです。たとえば、これも機能しません:
これを反映するように質問のタイトルも修正しました。
ibm-midrange - RPG または CL プログラムで活動化グループのコンパイラー・オプションを設定する方法は?
プログラム ソースを指定する方法はありますか?コンパイル時に使用するアクティベーション グループのオプションはありますか?
as/400 上のほとんどのプログラムでは、アクティベーション グループの処理を変更する必要があります (デフォルトの動作はまったく役に立たないため...)。これらのプログラムの 1 つをコンパイルするたびに、コンパイラ オプションを設定することを覚えておく必要があります (これは PDM にあります:プログラムに応じて、 enter 14
、 hit F4
、 change DFTACTGRP
from *YES
to *NO
、 hit enter
、 change ACTGRP
to *NEW
or )。*CALLER
そのため、最初にコメントが付いたプログラムがたくさんあります。大量の感嘆符があり、プログラマーにそうするように思い出させます。そして、はい、忘れることもあります。
自分を覚えなくていいようにするコツはありますか?
c++ - デフォルトの変数タイプをintに設定するC++のオプション
Linuxのg++コンパイラでコンパイルされるc++コードで、変数の型を省略したり、変数の型をに設定し たりするオプションはありますか?int
ソラリスではコンパイルがうまくいきました(ソラリスからLinuxへの移植を行っているため)。
もう1つ、ファイルはパーサーによって生成されるため(バイナリの形式でサードパーティによって提供されるため)、ファイルを制御できません。
私はc++ファイルを変更できないので(コンパイル前に毎回生成されるため)、エラーを抑制/解決するためにコンパイル中に含めることができるように(g ++の)いくつかのオプションが必要です:
編集 :
情報:現在使用しているオプション-c -fPIC -Wno-deprecated -m32 -O2 -ffriend-injection -g
私に問題を引き起こしている(または他の人に影響を与えている)オプションの誰かがいますか?
前もって感謝します
c++ - Visual Studioの「プリコンパイル済みヘッダーの作成」(/ Yc)と「プリコンパイル済みヘッダーの使用」(/ Yu)の違いは何ですか?
私はMSDNのドキュメントを読みましたが、最終的には、それらの実際的な違いが正確に何であるかが明確にわかりませんでした。どちらも、すべての*.cppファイルの先頭にstdafx.hを追加する必要があるようです。
VS2008を使用しています。
誰かが物事を片付けるのを手伝ってもらえますか?
c++ - /O2 と /Ox でのコンパイル -- (経験則として) どちらが速いですか?
This questionとMSDNは、/O2の方が高速であることを暗示しているようですが、Microsoft独自のSafeIntクラスを見ると、次のように書かれていることに気付くでしょう:
1) 最適化されたコードをコンパイルする -
/Ox
最高であり、/O2
パフォーマンスも良好です。興味深いことに、/O1
(サイズの最適化) も同様に機能しません。
違いが/GF /Gy
上記の質問とまったく同じである場合、それ/GF
は無関係であり (文字列プーリング)、/Gy
(フレーム ポインターを省略して)私が想像する限り、実際にあなたを傷つけることはありません。
足りないものはありますか?/Ox
一般的に速いですか?なぜですか、そうでないのですか?
visual-studio - コマンドラインからの PDB 生成の抑制 - C++
私は周りを検索して、Visual Studio メニューを使用して PDB ファイルの作成を抑制する例をいくつか見つけることができます。ビルド中のプロジェクトでこれを行う必要がありますが、これにはコマンド ラインからのみ Visual Studio コンパイラを使用する必要があります。PDB 生成を無効にするためのコマンド ライン スイッチはありますか?