問題タブ [gcc]
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 - 「C99モードの外部で使用されるforループの初期宣言」GCCエラーを修正するにはどうすればよいですか?
私は3n+1の問題を解決しようとしていfor
ますが、次のようなループがあります。
残念ながら、GCCでコンパイルしようとすると、このエラーが発生します。
3np1.c:15:エラー:'for'ループの初期宣言がC99モードの外部で使用されました
C99モードとは何かわかりません。何か案は?
c - ARM7TDMI で引数のアドレスを取得するときに GCC が壊れていますか?
私の C コード スニペットは、引数のアドレスを取得し、揮発性メモリの場所 (前処理されたコード) に格納します。
このコードのコンパイルには GCC の SVN バージョンを使用しました。関数の最後に、値がスタックに格納され、その値を指すアドレスが に格納されるfoo
ことを期待します。flag を使用して最適化なしでコンパイルすると、予想される ARM7TMDI アセンブリ出力が得られます (便宜上コメントされています)。1
0x40000d4
-O0
最初に引数をスタックに格納し、そこから に格納することは明らか0x40000d4
です。を使用して最適化してコンパイルすると-O1
、予期しない結果が得られます。
今回は、スタックの何かがまだ に格納されていても、引数がスタックに格納されることはありません0x40000d4
。
これは予想される/未定義の動作ですか? 何か間違ったことをしたのでしょうか、それとも実際に Compiler Bug™ を見つけたのでしょうか?
c - どの4.xバージョンのgccを使用する必要がありますか?
私が働いている製品グループは、現在、大規模な低レベルのcコードベースにgcc 3.4.6(古いものであることがわかっています)を使用しており、新しいバージョンにアップグレードしたいと考えています。テストしたすべてのハードウェアプラットフォームで、さまざまなバージョンのgcc4.xをテストするとパフォーマンスが向上することがわかりました。しかし、私たちはc-compilerのバグを非常に恐れており(歴史的には正当な理由があります)、どのバージョンにアップグレードすべきかについて誰かが洞察を持っているかどうか疑問に思います。
大規模なコードベースに4.3.2を使用していて、正常に機能していると感じている人はいますか?
c++ - .so ファイル内のシンボルを一覧表示するにはどうすればよいですか
.so ファイルからエクスポートされるシンボルを一覧表示するにはどうすればよいですか? 可能であれば、それらのソースも知りたいです (たとえば、静的ライブラリから取り込まれた場合など)。
それが違いを生む場合、私はgcc 4.0.2を使用しています。
c++ - リンク エラーをデバッグするためのベスト プラクティス
C++ でプロジェクトをビルドするとき、特に他の人のコードを拾うときは、リンク エラーのデバッグが難しいことに気付きました。リンクエラーをデバッグして修正するために人々はどのような戦略を使用しますか?
c - Cygwinでファイルを実行するにはどうすればよいですか?
a.exe
Cygwinシェルを使用して実行するにはどうすればよいですか?
Windows上のEclipseでCファイルを作成し、Cygwinを使用してディレクトリに移動しました。Cソースファイルでgccを呼び出して、a.exe
作成しました。走りたいa.exe
です。
exception - C++ で例外的なエラーを移植可能に処理する
Visual C++ アプリケーションを GCC に移植する作業を行っています (MingW と Linux でビルドする必要があります)。
既存のコードは__try { ... } __except(1) { ... }
、いくつかの場所でブロックを使用しているため、最小限のログを実行せずにプログラムを終了させるものはほとんどありません (おそらくメモリ不足タイプのエラーを除いて?)。
GCCで同様のことを行うためのオプションは何ですか?
編集:Visual Studio の /EH オプションへのポインタをありがとう。今必要なのは、Linux でシグナルを処理する方法の例です。2002年からこのメッセージを見つけました。
他にどのようなシグナルSIGFPE
があり、SIGSEVG
注意する必要がありますか? (主に、私が何か間違ったことをしているときに発生する可能性のあるものを気にします)
報奨金情報: アプリケーションが終了する前に、できるだけ多くのエラー状態を自己ログできるようにしたいと考えています。
どのようなシグナルを受け取る可能性があり、エラーメッセージをログに記録することが一般的に不可能なシグナルはどれですか? (メモリ不足、他に何?)
Linux と MingW でコードが少なくとも同じように動作する移植可能な方法で、例外と (最も重要な) シグナルを処理するにはどうすればよいでしょうか。#ifdef でOKです。
失敗をログに記録するラッパー プロセスがない理由は、パフォーマンス上の理由から、ディスクへのデータの書き込みを最後の最後まで保存しておくためです。終了します。
c - 警告/エラー「関数宣言はプロトタイプではありません」
自分で作成したライブラリがあり、
ファイルmylib.c:
ファイルmylib.h:
私のプログラムでは、このライブラリ関数を呼び出そうとしました:
ファイルmyprogram.c :
このプログラムをコンパイルしようとすると、次のエラーが発生します。
私は使用しています:gcc (GCC) 3.4.5 20051201 (Red Hat 3.4.5-2)
関数プロトタイプを宣言する適切な方法は何ですか?
c++ - C/C++ ライブラリの混合
Visual C++ で作成されたライブラリに対して gcc をリンクすることは可能ですか? もしそうなら、そうすることから生じる可能性のある衝突/問題はありますか?
c++ - C++での例外処理のオーバーヘッドの測定
C ++で例外処理のオーバーヘッド/パフォーマンスを測定するための最良の方法は何ですか?
スタンドアロンのコードサンプルを提供してください。
Microsoft Visual C++2008とgccをターゲットにしています。
次の場合から結果を得る必要があります。
- try/catchブロックがない場合のオーバーヘッド
- try / catchブロックがあるが、例外がスローされない場合のオーバーヘッド
- 例外がスローされたときのオーバーヘッド