タグ付けされた質問 「gcc」

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


3
CC、gcc、g ++の違いは?
アセンブリコードの生成、使用可能なライブラリ、言語機能などの点で、CおよびC ++コードをコンパイルするときの3つのコンパイラCC、gcc、g ++の違いは何ですか?
104 c++  c  gcc  compilation 

19
CMakeLists.txt:30(プロジェクト)でのCMakeエラー:CMAKE_C_COMPILERが見つかりませんでした
私は、CMakeを使用してVisual Studioソリューションを作成し、最新バージョンのasepriteをコンパイルしようとしています。 No CMAKE_C_COMPILER could be found. No CMAKE_CXX_COMPILER could be found. すでにGCCをダウンロードしており、Visual Studio 2015を使用しています。 私はこのチュートリアルに従っています: https://github.com/aseprite/aseprite/blob/master/INSTALL.md

6
__gxx_personality_v0の目的は何ですか?
これはOS開発サイトからの中古の質問ですが、どこにもまともな説明が見つからなかったので、興味津々でした。 gccを使用して独立したC ++プログラムをコンパイルおよびリンクすると、次のようなリンカーエラーが発生することがあります。 out/kernel.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' これは明らかに、このシンボルがlibstdc ++で定義されているためです。これは、独立した環境にはありません。問題を修正するには、このシンボルをどこかに定義する必要があります。 void *__gxx_personality_v0; どちらがいいですか、魔法のように機能するものが好きではありません...問題は、このシンボルの目的は何ですか?
103 c++  gcc  linker  kernel 

4
-D_XOPEN_SOURCEは何を意味しますか?
最近、この引数がないとgccがコンパイルできないコードに遭遇しました。gccのmanページを確認しましたが、この特定のオプションは見つかりませんでした。私は見つけましたがXOPEN_SOURCE、それが何をするのかほとんど説明がありませんでした。 誰かが詳しく説明してもらえますか?私が知っている-D_XOPEN_SOURCEように、異なる値に設定することができ400、600しかし、それらは何をしますか?
103 c  gcc 

2
voidでの&&の意味* p = && abc;
コードに出くわしましたvoid *p = &&abc;。&&ここの意味は何ですか?右辺値参照については知っていますが&&、このコンテキストでの使用は異なります。は何を&&示していvoid *p = &&abc;ますか?
102 c++  c  gcc  operators 

20
Gccエラー:gcc: 'cc1'を実行しようとしてエラー:execvp:そのようなファイルまたはディレクトリはありません
Linux Mint 12でgccを正常に使用しています。現在、エラーが発生しています。私は最近、いくつかの.soビルドを実行してClangをインストールしましたが、これらの両方のイベント以来正常にコンパイルされているため、何が変更されたのかわかりません。GUIソフトウェアマネージャーを使用してgccを削除してから再度インストールしましたが、結果は同じです。 ~/code/c/ut: which gcc /usr/bin/gcc ~/code/c/ut: gcc -std=c99 -Wall -Wextra -g -c object.c gcc: error trying to exec 'cc1': execvp: No such file or directory
102 gcc 

3
shared_ptr <Base>をshared_ptr <Derived>にダウンキャストしますか?
更新:この例のshared_ptrはBoostのものと似ていますが、それはshared_polymorphic_downcast(またはそのことについてはdynamic_pointer_castまたはstatic_pointer_cast)をサポートしていません! 参照カウントを失うことなく、派生クラスへの共有ポインターを初期化しようとしています: struct Base { }; struct Derived : public Base { }; shared_ptr&lt;Base&gt; base(new Base()); shared_ptr&lt;Derived&gt; derived; // error: invalid conversion from 'Base* const' to 'Derived*' derived = base; ここまでは順調ですね。C ++が暗黙的にBase *をDerived *に変換することを期待していませんでした。ただし、私はコードによって表現される機能が必要です(つまり、ベースポインターをダウンキャストしながら参照カウントを維持します)。私の最初の考えは、Baseにキャスト演算子を提供して、Derivedへの暗黙の変換が行われるようにすることでした(ペダントの場合:ダウンキャストが有効であることを確認しますので、心配しないでください)。 struct Base { operator Derived* (); } // ... Base::operator Derived* () { return down_cast&lt;Derived*&gt;(this); } …
102 c++  gcc  boost 

2
GCC -g vs -g3 GDBフラグ:違いは何ですか?
CソースコードをgccまたはClangでコンパイルするときは、常に-gフラグを使用してgdbのデバッグ情報を生成します。 gcc -g -o helloworld helloworld.c -g3代わりに推奨する人もいることに気づきました。-gと-g3フラグの違いは何ですか?また、との違いは-gあり-ggdbますか?
102 c  debugging  gcc  gdb  clang 

4
CコードでのC ++ライブラリの使用
データを管理するためのさまざまなクラスを提供するC ++ライブラリがあります。ライブラリのソースコードがあります。 ライブラリをCコードとC ++コードで同時に使用できるように、C ++ APIを拡張してC関数呼び出しをサポートする必要があります。 私はGNUツールチェーン(gcc、glibcなど)を使用しているため、言語とアーキテクチャのサポートは問題になりません。 これが技術的に不可能である理由はありますか? 注意が必要な落とし穴はありますか? これに関して利用可能なリソース、コード例、ドキュメントはありますか? 私が見つけた他のいくつかのこと: 以下を使用して、Cコードで使用する必要があるC ++ヘッダーをラップします。 #ifdef __cplusplus extern "C" { #endif // // Code goes here ... // #ifdef __cplusplus } // extern "C" #endif 「実際の」C ++インターフェースは、Cには含まれていない個別のヘッダーファイルに保存します。ここではPIMPLの原則を考えます。#ifndef __cplusplus #errorものを使用すると、狂気を検出するのに役立ちます。 Cコードの名前としてのC ++識別子の注意 CおよびC ++コンパイラ間でサイズが異なる列挙型。GNUツールチェーンを使用している場合はおそらく問題ではありませんが、それでも注意してください。 Cが混乱しないように、構造体については次の形式に従ってください。 typedef struct X { ... } X 次に、C …
102 c++  c  gcc  glibc 

21
CUDAがgccバージョンと互換性がない
CUDA SDKに同梱されているいくつかの例のコンパイルに問題があります。開発者ドライバー(バージョン270.41.19)とCUDAツールキットをインストールし、最後にSDK(4.0.17バージョン)をインストールしました。 最初はコンパイルできませんでした: error -- unsupported GNU version! gcc 4.5 and up are not supported! 81:/usr/local/cuda/include/host_config.hに責任がある行を見つけて、次のように変更しました。 //#if __GNUC__ &gt; 4 || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ &gt; 4) #if __GNUC__ &gt; 4 || (__GNUC__ == 4 &amp;&amp; __GNUC_MINOR__ &gt; 6) その時点から、コンパイルするサンプルのほんの一部しか取得できませんでした。 In file included from /usr/include/c++/4.6/x86_64-linux-gnu/bits/gthr.h:162:0, from /usr/include/c++/4.6/ext/atomicity.h:34, from /usr/include/c++/4.6/bits/ios_base.h:41, …
102 gcc  cuda  debian 

3
正規表現についてgcc 4.8以前のバグがありますか?
C ++ 11のコードでstd :: regexを使用しようとしていますが、サポートに少しバグがあるようです。例: #include &lt;regex&gt; #include &lt;iostream&gt; int main (int argc, const char * argv[]) { std::regex r("st|mt|tr"); std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; " matches st? " &lt;&lt; std::regex_match("st", r) &lt;&lt; std::endl; std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; " matches mt? " &lt;&lt; std::regex_match("mt", r) &lt;&lt; std::endl; std::cerr &lt;&lt; "st|mt|tr" &lt;&lt; …
101 c++  regex  gcc  c++11  libstdc++ 

4
GCC最適化レベルはいくつありますか?
どのように多くのGCCの最適化のレベルがありますか? gcc -O1、gcc -O2、gcc -O3、gcc -O4を試しました 非常に大きな数を使用すると、機能しません。 しかし、私は試しました gcc -O100 そしてそれはコンパイルされました。 最適化レベルはいくつありますか?

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

2
コンパイラエラー:memsetはこのスコープで宣言されていません
Ubuntu 9.10(gcc 4.4.1)でCプログラムをコンパイルしようとしています。 このエラーが発生しています: Rect.cpp:344: error: ‘memset’ was not declared in this scope しかし、問題はすでにcppファイルに含まれていることです。 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; また、同じプログラムはUbuntu 8.04(gcc 4.2.4)で正常にコンパイルされます。 何が足りないのか教えてください。
100 c++  gcc 

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