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

GNU Compiler Collection Suiteに関する質問。

4
FreeBSDがGCCを廃止してClang / LLVMを支持するのはなぜですか?
それで、私はネットサーフィンしていて、この記事につまずきました。基本的に、バージョン10以降のFreeBSDでは、Clang / LLVMを優先してGCCを廃止する予定です。 私がこれまでネットで見てきたことから、Clang / LLVMはかなり野心的なプロジェクトですが、信頼性の観点からはGCCに匹敵するものではありません。 FreeBSDがコンパイラインフラストラクチャとしてLLVMを選択している技術的な理由はありますか、それとも全体の問題は永遠のGNU / GPL対BSDライセンスに要約されていますか? この質問には(何らかの形で)FreeBSDでのGCCの使用に関する関連情報が含まれています
241 freebsd  compiling  gcc  c  llvm 

4
Cコンパイラをゼロからコンパイルし、Unix / Linuxをゼロからコンパイルする方法
アメリカ/イギリス以外の大規模なサービス組織で働いているとしましょう。UNIXサーバーとLinuxサーバーを幅広く使用しています。 この記事を読むと、Cコンパイラにバックドアを簡単に挿入でき、そのコンパイラでコンパイルされたコードにもバックドアが含まれることに言及しています。すべての暗号化方法、ハードウェア、およびソフトウェアにバックドア/弱点を置くというNSA / GCHQの命令に関する最近のリークを考えると、コンパイラは障害の重大なポイントになりました。すべての標準UNIX / Linixディストリビューションが危険にさらされる可能性があります。システム、データ、および顧客データを不正な政府によって侵害することはできません。 この情報を基に、信頼できるコンパイラをゼロから構築したいと考えています。その後、そのコンパイラを使用してソースコードからオペレーティングシステムとアプリケーションを構築できるように、安全な基盤を構築します。 質問 ソースコードからコンパイラをコンパイルし(一見鶏卵のシナリオ)、信頼できるUnix / Linuxディストリビューションをゼロからコンパイルするための正しい(そして安全な方法)は何ですか? 私や他の人がセキュリティ欠陥のソースコードを読んで理解する能力を持っていると仮定できるので、ソースコードはコンパイルする前に最初に吟味されます。私が本当に望んでいるのは、このコンパイラをゼロから安全に作成し、カーネル、OSのその他の部分、およびアプリケーションをコンパイルするために使用できる作業ガイドです。 セキュリティスタックは、そのスタックで実行されているオペレーティングシステムまたはアプリケーションに自信がある場合、ベースレベルで開始する必要があります。はい、ハードウェアのバックドアがあり、ビルド中にコンパイラにマイクロコードを挿入する可能性があることを理解しています。現時点では、米国で設計されていないチップを使用することを除いて、私たちができることはあまりありません。このレイヤーを最初にソートして、バックドアが挿入される前に古いコンピューターで構築できると仮定します。 ブルース・シュナイアーが言うように:「エンジニアに対して、私はこう言います。私たちはインターネットを構築し、私たちの何人かはそれを破壊するのを助けました。今、自由を愛する私たちはそれを直さなければなりません。」 追加リンク: http://nytimes.com/2013/09/06/us/nsa-foils-much-internet-encryption.html?pagewanted=all&_r=0 http://theguardian.com/commentisfree/2013/sep/05/government-betrayed-internet-nsa-spying

4
configure:エラー:Cコンパイラは実行可能ファイルを作成できません
Apache 2.2.15を2.2.27にアップグレードしようとしています。apache2.2.15 / buildから取得したconfig.niceを実行しているときに、次のエラーが表示されます。 checking whether the C compiler works... no configure: error: in `/home/vkuser/httpd-2.2.27/srclib/apr': configure: error: C compiler cannot create executables 私はオンラインで検索しようとしましたが、運はありません。また、小さなtest.cスクリプトを実行してcコンパイラをテストしましたが、正常に実行されます。「kernel-devel」パッケージのインストールなど、オンラインで提供されるソリューションはほとんどありませんでしたが、問題は解決しませんでした。これを機能させるにはどうすればよいですか? 生成されるconfig.logは次のとおりです。 This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by configure, which was …

1
このMakefileは、コンパイラを指定しなくてもCプログラムをどのように作成しますか?
私は本「Advanced Linux Programming(2001)」[code]の Makefileを使用していました。GNU makeがMakefileでコンパイラーを指定しなくてもコードを正しくコンパイルするのを見るのは私にとって奇妙でした。レシピなしで焼くようなものです! これはコードの最小バージョンです。 test.c int main(){} メイクファイル all: test そして本当に作品を作ります!これは実行するコマンドです: cc test.c -o test ドキュメントに有用なものが見つかりませんでした。これはどのように可能ですか? PS追加の注意事項:言語さえ指定されていません。test.c利用可能であるため、GNU makeはを使用しccます。存在するtest.cpp場合test.cc(またはがない場合test.c)は、g++(ではなく)を使用しc++ます。
41 linux  make  gcc  gnu-make 

1
gcc 7.3.0をコンパイルするにはどれくらい時間がかかりますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 去年閉鎖されました。 これまでのところ、約4時間実行されています。注意すべきことの1つは、前提条件がなく、contrib / download_prerequisitesでダウンロードする必要があることです。コンパイル時間に追加されるかどうかはわかりません。 以下にリストされているマシン仕様: 4 CPUs Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz uname -a Linux <name> 3.10.0-693.17.1.el7.x86_64 #1 SMP Thu Jan 25 13:49:55 PST 2018 x86_64 x86_64 x86_64 GNU/Linux free -m total used free shared buff/cache available Mem: 11854 676 1040 8 10137 10821 Swap: 5119 …
25 gcc 

4
cc1とgccの関係?
Linuxサーバー(ルートアクセスなし)のホームディレクトリにRubyをインストールしようとしていますが、もちろんを使用する必要がありgccます。私が見つけることができる最も近いものは、(あなたが十分に深く行くなら)含まれているその名前のディレクトリですcc1: >: find / -iname gcc 2> /dev/null /usr/libexec/gcc >: tree -if /usr/libexec/gcc /usr/libexec/gcc /usr/libexec/gcc/x86_64-redhat-linux /usr/libexec/gcc/x86_64-redhat-linux/4.1.1 /usr/libexec/gcc/x86_64-redhat-linux/4.1.1/cc1 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2 -> 4.1.1 CC1がWikipediaでGCCにリダイレクトするという事実は、身元に近いものを暗示しているように見えますが、リダイレクトに関するメモ以外にGCCページにCC1の言及はなく、グーグルは私に有用なものを何も提供しておらずcc1、gcc失敗した場所。 それらの間の正確な関係は何ですか?そして、このマシンでRubyをコンパイルする希望を与えてくれますか?
23 gcc 

4
debian jessie 8.1にGCC 5をインストールする方法
debianサーバーにgccコンパイラーのアップデートをインストールするための多くのソリューションを試しました。どれも機能しませんでした。C ++ 11の新しい機能を使用するには、コンパイラの更新が必要です。これにより、安定したlibcxx11 ABIとC ++ 11の安定したサポートが提供されるためです(こちらを参照)。具体的には、現在のコンパイラgccバージョン4.9.2(Debian 4.9.2-10)に含まれていないバージョン `GLIBCXX_3.4.21 'を取得しています。 ソリューションへのいくつかの指針が役立ちます。前もって感謝します。 私がすでに試した私の問題に関連するフォーラムへのリンク: 1 2 3(完全に関連するソリューションはubuntu用ではありませんが、debianのftpサーバーにgcc-5がまだ見つかりませんでした)
21 debian  gcc  c++  g++ 


3
gccはpthreadにリンクできませんか?
最近XUbuntu 11.10 64ビットをインストールしましたが、最も単純なpthreadの例をコンパイルするのに問題があります。 コードはpthread_simple.c次のとおりです。 #include <stdio.h> #include <pthread.h> main() { pthread_t f2_thread, f1_thread; void *f2(), *f1(); int i1,i2; i1 = 1; i2 = 2; pthread_create(&f1_thread,NULL,f1,&i1); pthread_create(&f2_thread,NULL,f2,&i2); pthread_join(f1_thread,NULL); pthread_join(f2_thread,NULL); } void *f1(int *x){ int i; i = *x; sleep(1); printf("f1: %d",i); pthread_exit(0); } void *f2(int *x){ int i; i = *x; …
17 c  libraries  gcc  xubuntu 

1
Boostがインストールされている場所をgccはどのように知るのですか
sudo apt-get installUbuntu を使用してboostをインストールしました。後でI、boostを使用するために、boostライブラリへのパスとともにフラグをgccに指定する必要はありませんでした。また、私は何もしませんpkg-config --cflags --libsでした。ここの謎は何ですか?gccはどのようにブーストがどこにあり、どのように自動的にリンクするのかを知ることができますか?
13 gcc  libraries  boost 

3
manファイルを手動で検索してインストールする
私はいくつかのマニュアルページ、特にgccとg ++を見逃しているようです。セクションを指定しても役に立ちません。whereisこれら2つのマニュアルページはリストされていないので、単に存在しないと思います。 Googleでは、たとえばhttp://linux.die.net/man/1/g++がたくさんあります(ただし、普通のHTMLのようですが...またはmanページのマークアップですか?) これを手動で置き換える方法を学ぶ良い機会になると思いました。gcc.1.gzファイルを探しているのでしょうか? GNU、Debian、または何らかの方法で自動化できますか?これらのファイルにどれだけの作業が費やされますか?1つ入手した場合、99%正しいか、時間/アーキテクチャによって大きく異なるのでしょうか?
13 debian  man  gcc  roff 

1
Linux、GNU GCC、ld、バージョンスクリプト、ELFバイナリ形式—仕組み
Linuxでのライブラリのバージョン管理と、それをすべて機能させる方法について詳しく学習しようとしています。コンテキストは次のとおりです。 -動的ライブラリの2つのバージョンがあり、同じインターフェイスセットを公開します(例:libsome1.soと)libsome2.so。 -アプリケーションはに対してリンクされていlibsome1.soます。 -このアプリケーションはlibdl.so、たとえば、別のモジュールを動的にロードするために使用しますlibmagic.so。 -今libmagic.soに対してリンクされていlibsome2.soます。明らかに、リンカスクリプトを使用してシンボルを非表示にせずにlibmagic.so、実行時のすべてのインターフェイスの呼び出しlibsome2.soはに解決されlibsome1.soます。これlibVersion()は、マクロの値に対して返される値をチェックすることで確認できますLIB_VERSION。 -だから、次にlibmagic.so、リンカスクリプトでコンパイルおよびリンクを試みます。リンカスクリプトは、3を除くすべてのシンボルを定義しlibmagic.so、それによってエクスポートされます。この作品...または少なくともlibVersion()とLIB_VERSION値が一致する(そしてそれは、バージョン2ではない1を報告します)。 -ただし、一部のデータ構造がディスクにシリアル化されると、破損が発生しました。アプリケーションのディレクトリlibsome1.soで、を指すようlibsome2.soにソフトリンクを削除して作成すると、すべてが期待どおりに機能し、同じ破損は発生しません。 私は仕方がありませんが、これは、実行時リンカーのシンボルの解決におけるいくつかの競合が原因であると考えられます。私は多くのことを試しましたlibsome2.so、すべてのシンボルが安定するようにリンクしようとしましたsymbol@@VER_2(コマンドがnm -CD libsome2.soまだシンボルをリストしているので、まだリストしsymbolていないので混乱していますsymbol@@VER_2)...何もうまくいかないようです!!! 助けて!!!!!!

5
rhel 6 x86_64に最新のgccをインストールする
gccバージョン4.4.7のRHEL 6サーバーがあります。gccのバージョンを更新したかった(現在のバージョンは4.8だと思います)。Yumの更新が機能しません。また、CentOSでの同様の質問に対するSOの回答は機能しません。受け入れられた回答の方法に従って、出力は「testing-1.1-devtools-6のリポジトリデータの取得エラー、リポジトリが見つかりません」です。また、CentOの方法に従う必要があるかどうかもわかりません。 RHEL 6 x86_64サーバーでgccを更新した人はいますか?

2
gccがTarget:x86_64-unknown-linux-gnuをArch Linuxで「不明」と表示するのはなぜですか?
gcc -vArch Linuxで実行するとunknown、次の出力に単語が表示される理由を知りたいと思います。 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper Target: x86_64-unknown-linux-gnu 他のディストリビューションでは、ubuntuのように、ubuntu次のようなディストリビューション名が表示されます。 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-ubuntu-linux-gnu/5.1.0/lto-wrapper Target: x86_64-ubuntu-linux-gnu
12 linux  arch-linux  gcc 


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