問題タブ [gcc3]
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++ - これはgcc最適化のバグですか?
これが私のコードです:
出力:
上記のコードを-O0でコンパイルすると、すべて正常に動作します。ただし、-O2を使用してコンパイルすると、関数func
が呼び出された後、ptr
become NULL
!
これはgccのバグですか?誰かが同様のバグに遭遇したことがありますか?
私のgccバージョンは次のとおりです。gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)
c - GCC 3.4.3 オプションの代替 -fstack-protector-all?
-fstack-protector-all
いくつかのスタック破壊保護シナリオを有効にするために、GCC 3.4.3 コンパイラでオプションを設定しようとしています。ただし、これでコンパイルすると、
エラーが発生しました: コマンドラインオプション "-fstack-protector-all" が認識されません
。このオプションは GCC 3.4.3 では実装されていないようです ?? または何か不足していますか?
古いGCCコンパイラに実装されていない場合、これに代わる最良/最も簡単な代替手段は何ですか?
それとも、C コード自体にスタックスマッシング プロテクターを実装するための便利なコード パターンでしょうか。
ありがとう
c - 最新の C コンパイラへの切り替えがバグの発見にどのように役立つかを示す例はありますか?
私は、GCC2 から GCC4 (C コンパイラとして) への切り替えが良い考えであることを人々に納得させるためのメモを準備しています。
特に、既存のバグを明らかにできると思います。例を挙げたいと思いますが、Java プログラマーとして、このような状況の経験は限られています。1 つの例は、戻り値の型チェックだと思います。
最新のコンパイラに切り替えると、C コードに存在するバグを発見できることを示す他の説得力のある例は何ですか?
c++ - std::map.find での gcc 3.4 内部コンパイラ エラー
gcc 3.4、ブースト 1.34.1 で次のエラーに遭遇した人はいますか?競合するコードは次の行に沿っています。
Symbol.h:97 は bool operator<( const Symbol& ) const メンバー関数を参照し、Symbol 型の 2 つのインスタンスを比較します。これは、次の内部コンパイラ エラーを引き起こす gcc 3.4 を除くすべてのコンパイラで正常に機能します。
/XYZ/include/XYZ/AAA/Type/Symbol.h:97: 内部コンパイラ エラー: dwarf2out.c:11278 の gen_subprogram_die で
上記がWeb上で失敗する理由へのポインタを見つけようとしましたが、解決策が見つかりませんでした. 誰かが変更によってこれに出くわしましたか? または、その時点でgccコンパイラが停止する理由を誰かが指摘していますか?
助けてくれてありがとう。
memory - C プログラムのスペース決定
C プログラムが使用するスペースを特定できますか? 現在、Windows XP で GCC コンパイラを使用しています。実際に、C プログラムが消費するスペースを確認したいと思います。
ある関数がCの他の関数によって消費されるサイズを教えてくれると非常に良い.
c++ - C++ ベースの MEX ファイルの GCC 3.4 と 4.4 の違いは?
最新の Matlab MEX ファイルをコンパイルするために gcc 3.4 と 4.4 を使用する場合のトレードオフ/懸念は何ですか?
Fedora v16 の MATLAB (R2012a) で使用するために、市販の C++ コード ( kdtree ) を MEX ファイルとしてコンパイルする必要があります。クラスターのデフォルトである最新の GCC コンパイラー (4.6.x) を使用してシンボルの問題に遭遇しました。また、システム管理者は、Matlab が公式にサポートしているコンパイラである gcc 4.4.x を利用可能にすることに非常に抵抗しています。(理由はわかりません)代わりに、彼はレガシー(2006年頃)のgcc 3.4.6コンパイラを使用することを提案しています。私の質問は、古い gcc コンパイラを使用する際にトレードオフや問題がある場合はどうなるかということです。パフォーマンス?64ビット対応? スレッドセーフ (または実際には複数の並列呼び出し)? 等?
c++ - GCC 3.4 の奇妙な再帰テンプレート パターン (正確には MoSync)
私は現在、アルテミスのようなゲーム コンポーネント/エンティティ システムを C++ で書こうとしています。このシステムを、Android と iOS でアプリケーションを作成するためのMoSyncというクロスプラットフォーム ツールで動作させることを計画していました。
残念ながら、MoSync は現在古いバージョンの GCC を使用しており、Visual Studio でテストしていたライブラリを移植すると、大量のエラーが発生しました。これらのほとんどは解決できましたが、テンプレートに関するバグが 1 つあります。
私は小さな例を書きました
私のライブラリは、Curiously Recursive Template パターンを使用してコンポーネントを定義します。この例は、GCC 4.4 および Visual Studio 2010 で正常にコンパイルされます。ただし、MoSync (GCC 3.4.6 を使用) でこれをコンパイルしようとすると、このリンカ エラーが発生します。
このコンパイラでこれを機能させるための回避策はありますか? または、コンポーネントを定義する別の方法を見つける必要がありますか?
編集*実際には、さらに単純な例でこのエラーを発生させることができます:
このエラーが発生します
これは Curiously Recursive Template パターンとはまったく関係がないかもしれません。これを GCC 3.4.6 でコンパイルするにはどうすればよいですか?
gcc - Boost.Spiritでの内部コンパイラエラー
GCC3.4.6とBoost1.43を使用して、次の一見単純なコードをコンパイルしようとしていますが、内部コンパイラエラーが発生しています。
生成されたエラー:
の最後の行は、main()
このエラーを生成しています。このエラーは、の代わりにexpression
ルールを機能させることで解消されます。std::string::iterator
IteratorT
レクサーを使用しながらエラーを修正するためのヘルプをいただければ幸いです。
ありがとう!
c - gcc は次の行について「決して実行されません」と報告します: while(fgets(line, MAX_LINE, stdin) != NULL)
gcc
なぜこの警告が表示されるのか、説明を探しています。
gcc-3
フラグを付けてoncygwin
でコンパイルしてい-Wunreachable-code
ますが、gcc は次の警告を表示します。
main.c:223: 警告: 決して実行されません
それはこの行です:while(fgets(line, MAX_LINE, stdin) != NULL) {
このコードは、コマンドライン引数 (によって解析) に従って動的に設定されるif(exp) { }
ブロック内にあります。コード部分を見てください。exp
getopt()
デフォルト値は です0
。ただし、次のように1
、-t
フラグがアプリケーションに渡された場合は次のようになります。
したがって、コードが実行される理由があります。たまたま。
qemu - qemuneoをgcc3.4でコンパイルする
qemuをgcc4でコンパイルするのは大変な手間と苦痛だと気付いたので、Linuxボックスにgcc-3.2ツールチェーンをインストールし、qemuをコンパイルしています。これらは私が実行した手順であり、出力を出力します。
しかし、コンパイルはこれらのエラーメッセージで停止し、正しいシステムインクルードパスがないように聞こえるので、-isystemスイッチを使用して明示的に指定しました。しかし、それでも正しくコンパイルされていません。
これに関する回避策はありますか?
- 前もって感謝します -