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

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

4
-Wl、-rpath -Wl、
便宜上、以下の関連するマンページを追加しました。 私の(誤)最初の理解:オプションを ,で、それは2番目の-Wlオプションが別のオプションではないこと,を意味し-rpathます。 どうすれ-rpathば-Wl,.議論できるのかわかりません! 私の心の中で理にかなっているのはこれでしょう: -Wl,-rpath . これにより、現在のディレクトリ引数を指定して-rpathリンカーオプションが呼び出されます。 man gcc: -Wl、オプション オプションをオプションとしてリンカーに渡します。オプションにコンマが含まれている場合、コンマで複数のオプションに分割されます。この構文を使用して、オプションに引数を渡すことができます。たとえば、リンカーに-Wl,-Map,output.map渡し -Map output.mapます。GNUリンカーを使用する場合、 `-Wl、-Map = output.map 'でも同じ効果が得られます。 man ld: -rpath = dir ランタイムライブラリの検索パスにディレクトリを追加します。これは、ELF実行可能ファイルを共有オブジェクトにリンクするときに使用されます。すべての-rpath引数は連結され、実行時リンカーに渡されます。実行時リンカーは、それらを使用して実行時に共有オブジェクトを見つけます。-rpathオプションは、リンクに明示的に含まれている共有オブジェクトに必要な共有オブジェクトを見つけるときにも使用されます。
244 gcc  ld  rpath 

7
Clang vs GCC-どちらがより良いバイナリを生成しますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 この質問を改善する 私は現在GCCを使用していますが、最近Clangを発見し、切り替えについて考えています。ただし、決定的な要素が1つあります- gcc -O3生成されるバイナリの品質(速度、メモリフットプリント、信頼性)。 ClangはGCCよりも優れたコンパイル速度と低いコンパイル時のメモリフットプリントを誇りますが、結果として得られるコンパイル済みソフトウェアのベンチマーク/比較に本当に興味があります。

21
未使用の変数に関する警告を無音にする方法を教えてください。
クロスプラットフォームアプリケーションがあり、一部の関数では、関数に渡されるすべての値が使用されていません。したがって、未使用の変数があるというGCCからの警告が表示されます。 警告をコーディングする最良の方法は何ですか? 関数の周りの#ifdef? #ifdef _MSC_VER void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight) #else void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/) #endif { これは醜いですが、コンパイラーが好む方法のようです。 または、関数の最後で変数にゼロを割り当てますか?(コンパイラの警告を消すためにプログラムフロー内の何かを変更しているため、これは嫌いです)。 正しい方法はありますか?
237 c++  gcc  warnings  gcc-warning 

13
fgets()入力から末尾の改行文字を削除する
ユーザーからデータを取得し、それをgccの別の関数に送信しようとしています。コードはこのようなものです。 printf("Enter your Name: "); if (!(fgets(Name, sizeof Name, stdin) != NULL)) { fprintf(stderr, "Error reading Name.\n"); exit(1); } ただし、\n最後に改行文字があることがわかりました。ですから、入力するJohnと送信されてしまいますJohn\n。それを削除し\nて適切な文字列を送信するにはどうすればよいですか。
236 c  string  gcc  newline  fgets 

1
C ++ 11を有効にするとstd :: vectorパフォーマンスが低下する
C ++ 11を有効にすると、小さなC ++スニペットで興味深いパフォーマンスの低下が見つかりました。 #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { container.push_back(Item()); } return 0; } g ++(GCC)4.8.2 20131219(プレリリース)とC ++ 03を使用すると、次のようになります。 milian:/tmp$ g++ -O3 main.cpp && …
235 c++  performance  gcc  c++11  vector 

13
Windows用Objective-C
WindowsプラットフォームでObjective-Cを作成する最良の方法は何でしょうか? Cygwinとgcc?これをVisual Studioに統合する方法はありますか? それらの線に沿って-このようなもののためにWindows SDKをリンクして使用する方法に関する提案はありますか?それは別の獣ですが、私はWindows DLLでアセンブリとリンクを記述して、それらの呼び出しにアクセスできるようにすることができますが、ググリングして断片的な指示を取得せずにこれを行う方法はわかりません。 このようなことをしたり説明したりするための優れたオンラインまたは本のリソースを知っている人はいますか?

5
GCCが整数除算を実装する際に奇妙な数による乗算を使用するのはなぜですか?
私は約読んでいるdivとmul組立オペレーション、と私はC言語で簡単なプログラムを作成することにより、アクションでそれらを見ることにしました。 ファイルDivision.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } そして、次のコードでアセンブリ言語コードを生成します。 gcc -S division.c -O0 -masm=intel しかし、生成されたdivision.sファイルを見ると、div操作は含まれていません。代わりに、ビットシフトとマジックナンバーを使用して、ある種のブラックマジックを実行します。計算するコードスニペットはi/5次のとおりです。 mov rax, QWORD PTR [rbp-16] ; Move i (=9) to RAX movabs rdx, -3689348814741910323 ; Move some magic number to …

9
makeinfoとは何ですか。
GNU grepをビルドしようとしていますが、makeを実行すると次のようになります。 [snip] /bin/bash: line 9: makeinfo: command not found makeinfoとは何ですか。 (違いがある場合、これはUbuntuです)
224 ubuntu  gcc  makefile  grep 

9
数行のコードでGCC警告を無効にする方法
Visual C ++では、を使用できます#pragma warning (disable: ...)。また、GCCではファイルごとのコンパイラフラグを上書きできることもわかりました。これを「次の行」に、またはGCCを使用してコードの領域の周りにプッシュ/ポップセマンティクスで行うにはどうすればよいですか?


6
typedef固定長配列
24ビットのデータ型を定義する必要がありますchar[3]。型を表すために使用しています。することができます私のtypedef char[3]にtype24?コードサンプルで試してみました。typedef char[3] type24;ヘッダーファイルに入れました。コンパイラはそれについて文句を言わなかった。しかしvoid foo(type24 val) {}、Cファイルで関数を定義すると、文句を言われました。type24_to_int32(type24 val)ではなくのような関数を定義できるようにしたいと思いますtype24_to_int32(char value[3])。
210 c  arrays  gcc  typedef 

14
libpthread.so.0:シンボルの追加エラー:コマンドラインにDSOがありません
openvswitch-1.5.0をコンパイルしているときに、次のコンパイルエラーが発生しました。 gcc -Wstrict-prototypes -Wall -Wno-sign-compare -Wpointer-arith -Wdeclaration-after-statement -Wformat-security -Wswitch-enum -Wunused-parameter -Wstrict-aliasing -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-field-initializers -Wno-override-init -g -O2 -export-dynamic ***-lpthread*** -o utilities/ovs-dpctl utilities/ovs-dpctl.o lib/libopenvswitch.a /home/jyyoo/src/dpdk/build/lib/librte_eal.a /home/jyyoo/src/dpdk/build/lib/libethdev.a /home/jyyoo/src/dpdk/build/lib/librte_cmdline.a /home/jyyoo/src/dpdk/build/lib/librte_hash.a /home/jyyoo/src/dpdk/build/lib/librte_lpm.a /home/jyyoo/src/dpdk/build/lib/librte_mbuf.a /home/jyyoo/src/dpdk/build/lib/librte_ring.a /home/jyyoo/src/dpdk/build/lib/librte_mempool.a /home/jyyoo/src/dpdk/build/lib/librte_malloc.a -lrt -lm /usr/bin/ld: /home/jyyoo/src/dpdk/build/lib/librte_eal.a(eal.o): undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing …

5
自作でimagemagickをインストールするにはどうすればよいですか?
OSX LionにImagemagickをインストールしようとしていますが、期待どおりに動作しません。 -> brew install imagemagick /usr/local/git/bin/git ==> Cloning https://github.com/adamv/ImageMagick.git Cloning into /Users/klebershimabuku/Library/Caches/Homebrew/imagemagick--git... fatal: https://github.com/adamv/ImageMagick.git/info/refs not found: did you run git update-server-info on the server? Error: Failure while executing: git clone --depth 1 https://github.com/adamv/ImageMagick.git /Users/kleber/Library/Caches/Homebrew/imagemagick--git 醸造医師は言う: -> brew doctor We couldn't detect gcc 4.0.x. Some formulae require this compiler. Some …
201 git  gcc  homebrew  osx-lion  gcc4 

7
GCCのすべての警告を(文字通り)オンにする方法は?
文字通り、GCCが提供するすべての警告を有効にしたいと思います。(それは簡単だと思います...) あなた-Wallはトリックをするかもしれないと思うでしょうが、いいえ!まだ必要-Wextraです。 あなた-Wextraはトリックをするかもしれないと思うでしょうが、いいえ!これによって、ここにリストされているすべての警告(たとえば、-Wshadow)が有効になるわけではありません。そして、このリストが包括的であるかどうかはまだわかりません。 GCCにすべての警告を有効にするように指示するにはどうすればよいですか(if、and、およびnoです!)。

3
「std :: cout」への未定義の参照
これを例にしましょう: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } それはエラーを投げます: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char,std::char_traits<char> >& std::operator<< <std::char_traits<char>>(std::basic_ostream<char, std::char_traits<char> >&, char const*)' main.o: In function `__static_initialization_and_destruction_0(int,int)': main.cpp:(.text+0x3d): undefined reference …
194 c++  c++11  gcc  cout 

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