タグ付けされた質問 「g++」

g ++は、GNU Compiler Collection(GCC)のC ++フロントエンドです。GCCはGNUコンパイラコレクションです。Linux上のC、C ++、Go、Fortran、Adaの事実上の標準コンパイラであり、他の多くの言語やプラットフォームもサポートしています。コンパイラーとは別に、GCCにはいくつかのプラットフォームやシステムで広く使用されているツールチェーン(libc、libstdc ++、objdump、nmなど)があります。


5
どのフラグ-march = nativeがアクティブになるかを確認するにはどうすればよいですか?
GCC 4.3を使用してC ++アプリをコンパイルしています。私が使用している最適化フラグを手動で選択する代わりに-march=native、理論上は、コンパイルしているハードウェアに適用可能なすべての最適化フラグを追加する必要があります。しかし、どのフラグを実際に使用しているかを確認するにはどうすればよいですか?

3
LD_LIBRARY_PATHとLIBRARY_PATH
単純なC ++プログラムを構築しています。開発とテストのために、システム提供の共有ライブラリを一時的に最新バージョンのライブラリに置き換えたいと考えています。 LD_LIBRARY_PATH変数を設定しようとしましたが、リンカー(ld)は次のエラーで失敗しました: / usr / bin / ld:-lyaml-cppが見つかりません ld manページによると、私はそれが機能することを期待していました: リンカーは次の検索パスを使用して、必要な共有ライブラリを見つけます。...ネイティブリンカーの場合、環境変数「LD_LIBRARY_PATH」の内容... 次に、LIBRARY_PATHを設定してみましたが、うまくいきました。 GCCマニュアルによると: LIBRARY_PATHの値は、PATHによく似た、コロンで区切られたディレクトリのリストです。ネイティブコンパイラとして構成されている場合、GCCは、GCC_EXEC_PREFIXを使用してそれらを見つけることができない場合、特別なリンカーファイルを検索するときに指定されたディレクトリを試みます。GCCを使用したリンクでも、-lオプションの通常のライブラリを検索するときにこれらのディレクトリが使用されます(ただし、-Lで指定されたディレクトリが最初に来ます)。 (GCC)マニュアルに示されているように、GCCとリンクしているため、LIBRARY_PATHが機能します。 だが.. エラーメッセージが示唆するように、私はgccとリンクしているので、なぜldが呼び出されていますか? 2つの変数が同じ目的を果たしている意味は何ですか?他に違いはありますか?
159 gcc  g++  ld 

9
値を返さずに非void関数の最後をオフにしても、コンパイラエラーが発生しないのはなぜですか?
私が何年も前に気付いて以来、これはデフォルトではエラーを生成しない(少なくともGCCでは)ことを知っているので、私はいつもその理由を疑問に思っていましたか? コンパイラフラグを発行して警告を生成できることを理解しましたが、常にエラーである必要はありませんか?非void関数が値を返さないのが有効であることはなぜ意味があるのですか? コメントでリクエストされた例: #include <stdio.h> int stringSize() { } int main() { char cstring[5]; printf( "the last char is: %c\n", cstring[stringSize()-1] ); return 0; } ...コンパイルします。
158 c++  c  gcc  g++ 

7
std :: enable_ifでメンバー関数を条件付きでコンパイル
簡単な例を使って、使い方を理解しようとしていますstd::enable_if。この回答を読んだ後、簡単な例を考え出すのはそれほど難しくないと思いました。std::enable_if2つのメンバー関数から選択して、そのうちの1つだけを使用できるようにしたい。 残念ながら、以下はgcc 4.7でコンパイルできません。何時間も試行した後、私の間違いは何ですかと皆さんに尋ねています。 #include <utility> #include <iostream> template< class T > class Y { public: template < typename = typename std::enable_if< true >::type > T foo() { return 10; } template < typename = typename std::enable_if< false >::type > T foo() { return 10; } }; int main() { Y< …
156 c++  templates  g++  c++11 

5
g ++-再注文のポイントは何ですか?
g ++ -Wallオプションには-Wreorderが含まれます。このオプションの機能を以下に説明します。なぜ誰かが気にするのか私には明らかではありません(特に-Wallでデフォルトでこれをオンにするのに十分です)。 -再注文(C ++のみ) コードで指定されたメンバー初期化子の順序が異なる場合に警告する それらが実行されなければならない順序と一致します。例えば: struct A { int i; int j; A():j(0)、i(1){} }; コンパイラーは、iおよびjのメンバー初期化子を次のように再配置します。 メンバーの宣言順序を一致させ、それに警告を発します 効果。この警告は-Wallによって有効になります。

8
GCC / G ++コンパイラで-pedanticを使用する目的は何ですか?
このメモは言う: -ansi:ANSI言語オプションを実装するようコンパイラーに指示します。これにより、ANSI標準と互換性のないGCCの特定の「機能」がオフになります。 -pedantic:と組み合わせて使用​​すると-ansi、ANSI標準に厳密に準拠するようコンパイラーに指示し、準拠していないコードはすべて拒否されます。 まず最初に: GCC / G ++コンパイラの-pedanticおよび-ansiオプションの目的は何ですか(上記の説明を理解できませんでした)? これらの2つのオプションを使用するための適切な状況を誰かに教えてもらえますか? いつ使うべきですか? それらは重要ですか?
136 c++  c  gcc  g++ 

4
名前空間stdでテンプレートクラスを転送宣言するにはどうすればよいですか?
#ifndef __TEST__ #define __TEST__ namespace std { template<typename T> class list; } template<typename T> void Pop(std::list<T> * l) { while(!l->empty()) l->pop(); } #endif 私のメインでその関数を使用しました。エラーが発生します。もちろん、私はstd::list(アロケーターだと思う)のテンプレートパラメーターが他にもあることを知っています。しかし、それは要点の外です。転送宣言できるようにするには、テンプレートクラスの完全なテンプレート宣言を知っている必要がありますか? 編集:以前はポインタを使用していませんでした-参照でした。ポインタで試してみます。
131 c++  templates  g++ 

5
徹底的で詳細なg ++警告を有効にするフラグ
多くの場合、Cの下gccでは、次の警告フラグのセットから開始します(複数のソースから痛々しくアセンブルされます)。 -Wall -Wextra -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast \ -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef \ -Wnested-externs -Wcast-qual -Wshadow -Wwrite-strings -Wno-unused-parameter \ -Wfloat-equal -pedantic -ansi 私はこの警告のセットを使って(少なくともデバッグバージョン)をビルドし、可能な限りすべて(通常はすべて)を修正し、フラグが適切でないか修正できない場合(ほとんどの場合)にのみフラグを削除します。-Werrorコンパイル中に離れなければならない場合は、追加することもあります。 私はC ++を採用しているだけで(そう、私は時代から15年遅れています)、右足から始めたいと思います。 私の質問は次のとおりです。誰かがC ++のプリコンパイルされた同様の完全な警告フラグのセットを持っていますかg++?(私はそれらの多くが同じになることを知っています。)
122 c++  g++  warnings 

6
エラー:削除された関数の使用
私は友人が書いたいくつかのC ++コードに取り組んでいて、gcc4.6でコンパイルしたときにこれまでに見たことのない次のエラーが発生します。 error: use of deleted function ‘GameFSM_<std::array<C, 2ul> >::hdealt::hdealt()’ is implicitly deleted because the default definition would be ill-formed: uninitialized non-static const member ‘const h_t FlopPokerGameFSM_<std::array<C, 2ul> >::hdealt::h’ 編集:これは、boost MSM:Boost Webpageを使用するコードの一部から来ています Edit2:ソースコードの= delete()どこにも使用されていません。 一般的に、このエラーはどういう意味ですか?このタイプのエラーが発生した場合、何を探す必要がありますか?

4
C ++での余分な修飾エラー
次のように定義されたメンバー関数があります。 Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString); ソースをコンパイルすると、次のようになります。 エラー:メンバー 'ParseValue'の追加の修飾 'JSONDeserializer ::' これは何ですか?このエラーを削除するにはどうすればよいですか?
120 c++  g++  compiler-errors 

4
gccでC ++ 11を有効にするにはどうすればよいですか?
Mac OSX Mountain Lionではhttp://hpc.sourceforge.netの gcc 4.8.1を使用しています。のto_string関数を使用するC ++プログラムをコンパイルしようとしています<string>。-std=c++11毎回フラグを使用する必要があります: g++ -std=c++11 -o testcode1 code1.cpp デフォルトでこのフラグを含める方法はありますか?
117 c++11  g++ 

5
何です.h.gchファイル?
私は最近、G ++でプログラムを作成しなければならないクラスプロジェクトを持っていました。 私はmakefileを使用しましたが、何らかの理由で.h.gchファイルが時々残されました。 時々、これはコンパイルに影響を及ぼさなかったが、しばしば修正された、または意味のない問題に対してコンパイラーがエラーを発行する結果になることがありました。 2つの質問があります。 1).h.gchファイルとは何ですか?そして 2)クリーンアップされていないのになぜこのような問題が発生するのですか?
116 c++  g++ 

7
最適化が有効になっていると異なる浮動小数点結果-コンパイラのバグ?
以下のコードは、最適化の有無にかかわらずVisual Studio 2008で動作します。しかし、それは最適化なしのg ++​​でのみ機能します(O0)。 #include <cstdlib> #include <iostream> #include <cmath> double round(double v, double digit) { double pow = std::pow(10.0, digit); double t = v * pow; //std::cout << "t:" << t << std::endl; double r = std::floor(t + 0.5); //std::cout << "r:" << r << std::endl; return r / …
109 c++  optimization  g++  c++-faq 

3
g ++で静的ライブラリを作成する方法は?
誰かが.cppと.hppファイルから静的ライブラリを作成する方法を教えてもらえますか?.oと.aを作成する必要がありますか?また、静的ライブラリをコンパイルして他の.cppコードで使用する方法を教えてください。持っていますheader.cpp、header.hpp .作りたいheader.aです。でheader.aをテストしtest.cppます。コンパイルにg ++を使用しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.