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

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

7
C ++警告:ゼロによるdoubleの除算
ケース1: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0.0)<<std::endl; } 警告なしでコンパイルして出力しinfます。OK、C ++はゼロによる除算を処理できます(ライブでご覧ください)。 だが、 ケース2: #include <iostream> int main() { double d = 15.50; std::cout<<(d/0)<<std::endl; } コンパイラーは次の警告を出します(ライブで確認してください): warning: division by zero [-Wdiv-by-zero] std::cout<<(d/0)<<std::endl; 2番目のケースでコンパイラが警告を出すのはなぜですか? ですか0 != 0.0? 編集: #include <iostream> int main() { if(0 == 0.0) std::cout<<"Same"<<std::endl; else std::cout<<"Not …

4
ヘッダーファイルがどこからインクルードされているかを見分ける方法は?
g ++がインクルードファイルを見つけた場所を確認するにはどうすればよいですか?基本的に私が #include <foo.h> g ++は、パスを追加または変更するインクルードオプションを使用して、検索パスをスキャンします。しかし、今日の終わりに、g ++がコンパイルすることを選択したfoo.hの絶対パスを伝える方法はありますか?無数の検索パスにfoo.hが複数ある場合は特に関連があります。 それを達成する方法が不足しています...デフォルトとすべてのインクルードオプションを含めた後、g ++に最終的な検索パスを教えてもらう方法はありますか?
97 c++  c  gcc  include  g++ 

2
`-fpic`と` -fPIC`のgccパラメータの違いは何ですか?
私はすでに読んだgccmanページを、私はまだの違いを理解することはできません-fpicとします-fPIC。誰かがそれを非常にシンプルで明確な方法で説明できますか? 関連する質問: 共有ライブラリをビルドするときの-fPICの意味は? オブジェクトが実行可能ファイルで使用されている場合、gcc -fPICフラグを使用してオブジェクトをコンパイルするとどのような影響がありますか?
96 gcc  fpic 

1
委任コンストラクターの使用中のメンバーの初期化
私はC ++ 11標準を試し始めましたが、同じクラスの別のctorからctorを呼び出してinitメソッドなどを回避する方法を説明するこの質問を見つけました。今、私は次のようなコードで同じことを試しています: hpp: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream *lines); virtual ~Tokenizer() {}; private: std::stringstream *lines; }; cpp: Tokenizer::Tokenizer() : expected('=') { } Tokenizer::Tokenizer(std::stringstream *lines) : Tokenizer(), lines(lines) { } しかし、これは私にエラーを与えています: In constructor ‘config::Tokenizer::Tokenizer(std::stringstream*)’: /path/Tokenizer.cpp:14:20: error: mem-initializer for ‘config::Tokenizer::lines’ follows constructor delegationTokenizer()の部分をリストの最初と最後に移動しようとしましたが、それは役に立ちませんでした。 これの背後にある理由は何ですか、どうすれば修正できますか?代わりにをlines(lines)体に移動してみましたが、this->lines = lines;正常に動作します。しかし、私は本当に初期化リストを使用できるようにしたいと思います。

13
プリプロセッサマクロで「sizeof」を使用するにはどうすればよいですか?
sizeofプリプロセッサマクロでを使用する方法はありますか? たとえば、私が長年にわたって次のようなことをしたいと思った状況はたくさんあります。 #if sizeof(someThing) != PAGE_SIZE #error Data structure doesn't match page size #endif 私がここでチェックしている正確なことは完全に構成されています-重要なのは、これらのタイプ(サイズまたは配置)のコンパイル時チェックを入れて、誰かがデータ構造を誤って調整したり再調整したりしないようにするためです。それらを壊すサイズのもの。 言うまでもなく-私はsizeof上記の方法でaを使用することができないようです。
95 c  gcc 


9
コンパイルエラー:「g ++: 'cc1plus'を実行しようとしてエラー:execvp:そのようなファイルまたはディレクトリはありません」
C / C ++プログラムをpopenin php...でコンパイルすると、次のエラーが発生しました。 g++: error trying to exec 'cc1plus': execvp: No such file or directory しかし、シェルでphpコードを実行すると、うまく動作します。 Arch Linux .. PHPコード: <?php function rfile($fp) { $out=""; while (!feof($fp)) { $out.= fgets($fp, 1024000); } return $out; } $p = popen('g++ -Wall -g aplusb.cc -o aplusb 2>&1', 'r'); $result = rfile($p); …
95 php  c++  c  linux  gcc 

8
UbuntuでデフォルトのGCCコンパイラを変更するにはどうすればよいですか?
すでにgcc / g ++-4.4がインストールされているubuntu 11.04にgcc-3.3 / g ++-3.3をインストールしました。したがって、私のシステムではgcc-3.3と4.4の両方を使用できます。必要に応じて両方のコンパイラを呼び出すことができます。コマンドを呼び出すだけの場合gcc、gcc-4.4が呼び出されます。gcc-3.3を呼び出すには、コマンドを使用する必要がありますgcc-3.3。 デフォルトのコンパイラをgcc-3.3に変更するにはどうすればよいですか?コマンドを実行すると、gccgcc-4.4ではなくgcc-3.3が呼び出されます。 さらに、makeファイルの変数CXXをgcc-3.3に変更するにはどうすればよいですか?すべてのmakeファイルを変更するのではなく、システム内の1つの共通のグローバルな場所を変更したいと思います。
95 linux  ubuntu  gcc 



7
警告としてエラーとして扱われることなくコンパイルする方法は?
問題は、Windowsで正常にコンパイルされる同じコードがUbuntuでコンパイルできないことです。このエラーが発生するたびに: cc1: warnings being treated as errors さて、それは大きなコードベースであり、すべての警告を修正したくありません。 警告にもかかわらず、正常にコンパイルできる方法はありますか?

7
C / C ++ with GCC:リソースファイルを実行可能ファイル/ライブラリに静的に追加します
GCCを使用してリソースファイルを実行可能ファイルまたは共有ライブラリファイルに直接静的にコンパイルする方法を知っている人はいますか? たとえば、決して変更されないイメージファイルを追加します(変更される場合は、とにかくファイルを置き換える必要があります)。ファイルシステム内に配置したくないです。 これが可能である場合(そして、Visual C ++ for Windowsもこれを行うことができるためだと思います)、独自のバイナリに格納されているファイルをどのようにロードできますか?実行可能ファイルはそれ自体を解析し、ファイルを見つけて、そこからデータを抽出しますか? たぶん、まだ見たことがないGCCのオプションがあるでしょう。検索エンジンを使用しても、実際には適切なものが出てきませんでした。 共有ライブラリと通常のELF実行可能ファイルで機能させるには、これが必要です。 どんな助けでもありがたいです


4
試験的::ファイルシステムのリンカーエラー
新しいc ++ 1z機能を実際にgcc 6.0内の開発の先頭で使用しようとしています。 この小さな例を試してみると: #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; } 私が得た: / opt / linux-gnu_6-20151011 / bin / g ++ --std = c ++ 1z main.cpp -O2 -g -o go …
94 c++  gcc  c++17 


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