問題タブ [gcc4]

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.

0 投票する
1 に答える
890 参照

c++ - intel の tbb の奇妙なエラー

私は intel の tbb をビルドし、qt pro ファイルに次の行を含めました。

しかし、プロジェクトをコンパイルしようとすると、エラーが発生します:

他にやるべきことはありますか?.lib ファイルがどこにも見つかりません。

0 投票する
1 に答える
1198 参照

java - Windows XP で JNI Cygwin コードを使用して終了すると、アクセス違反 0xc0000005 が発生する

私はこれに困惑しています。Ubuntu 11 と MacOSX で動作する JNI コードがありますが、Windows で問題が発生します。

JRE バージョン: 6.0_31-b05 OS: Windows XP with gcc 4. _int64 コンパイル エラーを回避するために jni_md.h を変更: http://www.vtk.org/pipermail/vtkusers/2006-May/085047.html

コードは Maven を使用してビルドおよび実行されます。Ubuntu 11 と MacOSX で完全に動作する単体テストを実行すると、エラーが発生します。

いくつかの観察。

1) String を返す関数が 1 つあります。これにより、単体テストがフリーズします。サインはこちら。

2) 関数が呼び出されないようにし、それに応じて単体テストを変更すると、単体テストはエラーなしで実行されますが、終了時にアクセス違反が発生します。

スタックトレース:

あなたの助けに感謝します。私は完全な Windows 初心者であり、それは役に立ちません。Visual C++ 2010 を調べようとしましたが、多くのコンパイル エラーが発生したため、Cygwin を使用する方がよいと判断しました。また、BASH にはかなりの数のスクリプト ロジックがあるため、とにかく Cygwin 環境が必要です。

0 投票する
1 に答える
3816 参照

c - GCC4.6での奇妙な診断プラグマの動作

(まだ)使用されていない静的関数がいくつかあるCプログラムがあります。これらの特定の機能の警告を無効にしたい。-Wunused-functionすべての警告を無効にしたくありません。GCC4.6を使用しています。具体的には:

私は(使用するためpushpop)ドキュメントのアドバイスに従っていますが、それを機能させることができませんでした。

問題を調査するために、いくつかの簡略化されたソースコードを作成しました。私はそれらをgcc -Wall -o pragma pragma.c(where pragma.c)でコンパイルしています。私の最初のバージョンはpragma.c次のようになります。

予想通り、コンパイルすると次のようになります。

また、予想どおり、次のような警告を無効にすることができます(その後、コンパイルはサイレントに成功します)。

しかし、その後、私はこれを試しました:

それをコンパイルすると、元の警告が表示されました。

を削除するpopと、警告が削除されます。

しかし、コードの特定のセクションに対してのみ警告を無効にする方法が必要です。私はそれをすることができませんでした。

これがどのように意図された動作であるかを想像するのは難しいです...しかし、他の多くの人がこのバージョンのGCCを使用しており、これがバグである場合、リリースバージョンになる可能性は低いようです。

それでも、この動作がドキュメントとどのように一致しているかを確認するのに問題があります。ドキュメントには、「行の後に発生するプラグマは、その行によって引き起こされる診断に影響を与えない」と書かれています。

私は何が間違っているのですか?バグレポートや考えられる回避策に関する情報など、問題に関する詳細情報はありますか?

0 投票する
2 に答える
196 参照

c - 最新の C コンパイラへの切り替えがバグの発見にどのように役立つかを示す例はありますか?

私は、GCC2 から GCC4 (C コンパイラとして) への切り替えが良い考えであることを人々に納得させるためのメモを準備しています。

特に、既存のバグを明らかにできると思います。例を挙げたいと思いますが、Java プログラマーとして、このような状況の経験は限られています。1 つの例は、戻り値の型チェックだと思います。

最新のコンパイラに切り替えると、C コードに存在するバグを発見できることを示す他の説得力のある例は何ですか?

0 投票する
1 に答える
129 参照

c++ - QApplication は gcc 4.7 でコンパイルされますが、クラッシュします

ここからhttp://nuwen.net/mingw.html gcc 4.7 をダウンロードし、qt でセットアップしました。すべてがqtで正常にコンパイルされますが、残念ながら(qtから)アプリを実行するとクラッシュします。
何か考えはありますか?
編集 (これはこのアプリケーション、OS Win7、Qt 4.8 です):

0 投票する
3 に答える
11841 参照

c - gcc が不平を言う: 可変サイズのオブジェクトが初期化されていない可能性がある

私はこれらを見てきましたが、私の質問に答えていません:

可変サイズのオブジェクトは初期化できない可能性があります

C コンパイル エラー:「可変サイズ オブジェクトが初期化されていない可能性があります」

エラー: 可変サイズ オブジェクトが初期化されていない可能性があります。しかし、なぜ?


私はかなりポータブルなcコードを書こうとしています:


次のいずれかを使用してコードとしてコンパイル すると、variable-sized object may not be initializedエラーが発生します。c

  • gcc 4.3.4
  • arm-linux-gnueabi-gcc 4.4.5

そして、VS2008のようcコンパイルすると、少し異なりますerror C2057: expected constant expression


ここで、cコード コンパイラがconst int foo=13;真に一定であることを認識していないことを理解しています。たとえば、


また、gcc コンパイラとは異なり、 VS2008コンパイラにはC99 可変長配列の概念がないことも認識しています。そして、その MS は明らかに将来のサポートについて言及していません。


それでも、gccコンパイラまたはMScppコンパイラを使用したコードのコンパイルは、まったく異なります。


また、 gccコード コンパイラに関して私が理解していないことは次のとおりです。 c


(注: この最後のケースでは、MS cコードのコンパイルは失敗します。一貫して と同様ですint bar[foo]={0};)

0 投票する
1 に答える
8634 参照

c++ - エラー:文字列リテラル演算子""SLASHESが見つかりません

gcc4.7でqtCreator2.3をビルドしようとしていますが、次のエラーが発生します。

エラー:文字列リテラル演算子""が見つかりません

mingw32-make -ltoqtCreatorソースディレクトリとして使用しています。何かご意見は?

0 投票する
1 に答える
257 参照

assembly - GCC4 - ARMv5 のレジスタ割り当て

そのアーキテクチャの標準ABIとは異なる方法でレジスタを使用するコードを生成するようにGCCに依頼する方法はありますか?

ARMv4 チップ (LPC2000) を使用していますが、高速割り込みを高速化する必要があります。

FIQ ルーチンがありますが、スタックに r0..r7 を格納する必要があります。これは、レジスタ R8..r15 の独自のバンクであるため、FIQ モードとしては無意味に思えます。代わりにそれらを使用して、スタックからのプッシュとポップに使用される 16 命令サイクルを節約したいと考えています。

誰かが明白なことを述べる前に: アセンブリ言語で FIQ ハンドラーを書き直してください。はい、それができることはわかっています。この質問はより具体的です。

関数内でレジスタを割り当てる順序を変更するよう GCC4 に指示する #pragma または __attribute__ またはスイッチはありますか?

0 投票する
1 に答える
1207 参照

gcc - GNU ARMツールチェーンを使用して場所に依存しないコードを生成する方法は?

プロジェクトにARMELFツールチェーンを使用しています。私はブートローダーに取り組んでいます。ブートローダーはリセット時にフラッシュからRAMに自動的に再配置されるため、場所に依存しない必要があります。GNU ARMツールチェーンを使用して場所に依存しないコードをコンパイルする方法を理解しようと懸命に努力しましたが、それを機能させることができないようです。

コンパイラに-fpicおよび-fpieオプションを使用し、リンカに-pieオプションを使用しようとしましたが、これらのオプションを使用すると、コンパイラは.gotセクションまたは.pltセクションのいずれにもセクションが定義されていないと文句を言います。これらのセクションがどこに行くべきか、つまりBSSまたはTEXTのどこに行くべきかわかりません。これについてグーグルした後、私は-fpieだけを使うべきだと思いますが、よくわかりません。

これを経験した人が私を助けてくれませんか。GNUARM4.1.1を使用しています

0 投票する
1 に答える
2376 参照

c++ - c++ 日付の解析がスレッドセーフでないのはなぜですか?

この関数は、日付とフォーマット文字列とreturn boost::posix_time::ptime.

例:2012:06:14 02:50:58%Y:%m:%d %H:%M:%S.

ただし、マルチスレッドプログラムで呼び出すと、例外がスローされることがありますが、format正しくlocalDateて解析可能です (呼び出しごとに同じ日付を使用します)。std::stringstream/スレッドの問題について何かを見つけましstd::localeたが、最新のものはありません(gcc 4.6.3 64ビットを使用しています)。

ここで誰かが同じ問題を抱えています:

ここ数日間、Valgrind/drd を使用してテストを行ったところ、コードの多くの部分で問題が発生していることがわかりました。たとえば、いくつかのブースト日時変換関数を呼び出すときに、スレッドセーフではない std::locale() をヒットします。

問題のない更新されたコード:

それでも:なぜですか?