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

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


13
usr / bin / ld:-l <nameOfTheLibrary>が見つかりません
プログラムをコンパイルしようとすると、次のエラーが返されます。 usr/bin/ld: cannot find -l&lt;nameOfTheLibrary&gt; 私のメイクファイルでは、コマンドを使用g++して、他のディレクトリにあるライブラリへのシンボリックリンクであるライブラリにリンクしています。 機能させるために追加するオプションはありますか?
443 c++  linux  g++ 

5
C ++ 11をg ++でコンパイルする
C ++コンパイラをC ++ 11に更新しようとしています。少し検索して、フラグ-std=c++0xまたはを使用する必要があるという結論に達しましたが、フラグ-std=gnu++0xについて多くのことを知りません。誰か助けてもらえますか?(私はUbuntu 12.04を使用しています。) これは、C ++ 11に含まれているライブラリ(つまり、配列)を使用しようとするとコンパイラーから発生するエラーです。 #include &lt;array&gt; #include &lt;iostream&gt; int main() { std::array&lt;int, 3&gt; arr = {2, 3, 5}; ... } このファイルには、今後のISO C ++標準であるC ++ 0xのコンパイラとライブラリのサポートが必要です。このサポートは現在実験段階であり、-std = c ++ 0xまたは-std = gnu ++ 0xコンパイラオプションで有効にする必要があります。
367 c++  c++11  g++  flags 

30
vtableへの未定義の参照
C ++プログラムをビルドすると、エラーメッセージが表示される 'vtableへの未定義の参照... この問題の原因は何ですか?どうすれば修正できますか? たまたま、次のコード(問題のクラスはCGameModuleです)でエラーが発生し、私の人生では問題が何であるかを理解できません。最初は、仮想関数に体を与えるのを忘れることに関係があると思っていましたが、私の知る限り、すべてがここにあります。継承チェーンは少し長いですが、関連するソースコードを次に示します。他にどのような情報を提供すべきかわかりません。 注:コンストラクターがこのエラーが発生しているようです。 私のコード: class CGameModule : public CDasherModule { public: CGameModule(Dasher::CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, CDasherInterfaceBase *pInterface, ModuleID_t iID, const char *szName) : CDasherModule(pEventHandler, pSettingsStore, iID, 0, szName) { g_pLogger-&gt;Log("Inside game module constructor"); m_pInterface = pInterface; } virtual ~CGameModule() {}; std::string GetTypedTarget(); std::string GetUntypedTarget(); bool DecorateView(CDasherView *pView) …
357 c++  gcc  g++ 

2
カスタムクラスタイプをキーとして使用するC ++ unordered_map
unordered_map次のように、カスタムクラスをのキーとして使用しようとしています。 #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;unordered_map&gt; using namespace std; class node; class Solution; class Node { public: int a; int b; int c; Node(){} Node(vector&lt;int&gt; v) { sort(v.begin(), v.end()); a = v[0]; b = v[1]; c = v[2]; } bool operator==(Node i) { if ( i.a==this-&gt;a &amp;&amp; i.b==this-&gt;b &amp;&amp;i.c==this-&gt;c …

6
GCCダンププリプロセッサが定義
OverаэтотвопросестьответынаStack Overflowнарусском:Какузнатьсписоквсехопределённыхмакросов? コマンドラインからgcc / g ++がプリプロセッサ定義をダンプする方法はありますか?以下のようなI平均の事__GNUC__、__STDC__など。
248 gcc  g++  c-preprocessor 

12
to_stringはstdのメンバーではない、とg ++は言う(mingw)
私は単語が意味のためにランダムに私にフラッシュされるだろう小さな語彙記憶プログラムを作っています。Bjarne Stroustroupが教えてくれたように、標準のC ++ライブラリを使用したいのですが、一見奇妙な問題がすぐに発生しました。 ファイルに格納できるようにlong整数をに変更したいstd::string。私はto_string()同じものを採用しています。問題は、g ++(--compileversionフラグで言及されているバージョン4.7.0)でコンパイルすると、次のようになります。 PS C:\Users\Anurag\SkyDrive\College\Programs&gt; g++ -std=c++0x ttd.cpp ttd.cpp: In function 'int main()': ttd.cpp:11:2: error: 'to_string' is not a member of 'std' このエラーを発生させる私のプログラムは次のとおりです。 #include &lt;string&gt; int main() { std::to_string(0); return 0; } しかし、msdnライブラリーがそれが存在することを明確に示しており、Stack Overflow(g ++バージョン4.5の場合)に関する以前の質問で、-std=c++0xフラグを使用してオンにできることを示しているため、そうなる可能性はありません。何が悪いのですか?
245 c++  c++11  g++  mingw  tostring 

5
最適化レベル-O3はg ++で危険ですか?
私はさまざまな情報源から聞いたことがあります(ほとんどが私の同僚からのものです)。 -O3 g ++のはどういうわけか「危険」であり、必要であることが証明されない限り一般に回避すべきであるとています。 これは本当ですか、もしそうなら、なぜですか?私だけに固執する必要があり-O2ますか?

7
gcc警告」「後で初期化されます」
変更できないサードパーティのコードからこれらの警告がたくさん表示されます。この警告を無効にする方法、または少なくとも特定の領域(VC ++での#pragma push / popなど)に対して無効にする方法はありますか? 例: list.h:1122: warning: `list&lt;LogOutput*, allocator&lt;LogOutput*&gt; &gt;::node_alloc_' will be initialized after list.h:1117: warning: `allocator&lt;LogOutput*&gt; list&lt;LogOutput*, allocator&lt;LogOutput*&gt; &gt;::alloc_'

17
typeinfoへのg ++​​未定義参照
私は次のエラーに遭遇しました(そして解決策はオンラインで見つかりましたが、Stack Overflowにはありません)。 (.gnu.linkonce。[stuff]):[メソッド] [オブジェクトファイル]への未定義の参照:(。gnu.linkonce。[stuff]): `[クラス名]のtypeinfoへの未定義の参照 ' これらの「typeinfoへの未定義の参照」リンカーエラーの1つが表示されるのはなぜですか? (舞台裏で何が起こっているかを説明できる場合のボーナスポイント。)
209 c++  linker  g++ 

7
静的クラスメンバーへの未定義の参照
次のコードがコンパイルされない理由を誰かが説明できますか?少なくともg ++ 4.2.4では。 さらに興味深いことに、MEMBERをintにキャストするとコンパイルされるのはなぜですか? #include &lt;vector&gt; class Foo { public: static const int MEMBER = 1; }; int main(){ vector&lt;int&gt; v; v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER' v.push_back( (int) Foo::MEMBER ); // OK return 0; }
201 c++  g++ 

5
可変個のマクロの作成方法(引数の変数の数)
特定の数ではなく、任意の数のパラメーターを受け入れるマクロをCで記述したい 例: #define macro( X ) something_complicated( whatever( X ) ) どこX任意の数のパラメータであります whateverオーバーロードされており、2つまたは4つのパラメーターで呼び出すことができるため、これが必要です。 マクロを2回定義しようとしましたが、2番目の定義が最初の定義を上書きしました。 私が使用しているコンパイラはg ++(より具体的には、mingw)です。


1
すべてのgcc警告を無効にする
私は特定の種類のコンパイラエラーメッセージを読み取り、それらを使用して有用な処理を行うプロジェクトに取り組んでいます。これをテストしているサンプルコードベース(ランダムオープンソースアプリケーション)のため、頻繁に再構築しますが、警告を生成するいくつかのビットが含まれていますが、これは私には関係ありません。 GCCからのすべての警告を無効にして、エラーメッセージがある場合にそれを表示するにはどうすればよいですか?
184 gcc  g++  warnings 

8
Ubuntuで32ビット上で64ビットプログラムをクロスコンパイルすると、「bits / c ++ config.h」が含まれていない
Ubuntu 10.10の32ビットバージョンを実行していて、64ビットターゲットにクロスコンパイルしようとしています。私の研究に基づいて、g ++-multilibパッケージをインストールしました。 プログラムは非常にシンプルなHello Worldです。 #include &lt;iostream&gt; int main( int argc, char** argv ) { std::cout &lt;&lt; "hello world" &lt;&lt; std::endl; return 0; } コンパイル: g++ -m64 main.cpp エラー: In file included from main.cpp:1: /usr/include/c++/4.4/iostream:39: fatal error: bits/c++config.h: No such file or directory compilation terminated. 私が発見したc++config.hファイルを、彼らは下に常駐i486-linux-gnuしてi686-linux-gnuいるディレクトリ/usr/include/c++/4.4/ありませんc++config.hでは/usr/include/c++/bits。 私が欠けているものについてのアイデアはありますか?-m64フラグなしのコンパイルは正常に機能します(a.outが作成され、正しく実行されます)。 編集 @nightcrackerからのヒントのおかげで、32ビットシステムと64ビットシステムのインクルード構造についてもう少し調査しました。以下に、問題を一時的に「修正」する回答を追加しましたが、次のアップデートで壊れると思います。基本的に、インクルードファイルが不足している/usr/include/c++/4.4/i686-linux-gnu/64というサブディレクトリが含まれているはずのというディレクトリbitsが不足しています。どのパッケージがこれを処理する必要があるか考えていますか?

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