タグ

gccに関するrsakamotのブックマーク (37)

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • コンパイラの構造を解説 | Shinta's Site

    はじめに 久しぶりに Aho氏, Sethi氏, Ullman氏の書いた Compilers(レッド・ドラゴン・ブック)という書籍を目にしたので、昔、コンパイラを作った時の事を思い出しながらコンパイラについてまとめてみました。 Translator (翻訳) Translatorとは、一つのプログラミング言語(Source Language: 原始言語)で書かれたプログラムを入力として取り、別の言語(Object Language or Target Language: 目的言語)のプログラムとしてつくり出すプログラムです。 原始言語が FORTRAN, C, Pascal などの高水準言語で、目的言語がアセンブリ言語や機械語といったような低水準言語である時、そのような Translator をコンパイラ(Compiler) と呼びます。また、原始言語がアセンブリ言語で目的言語が機械語であ

    rsakamot
    rsakamot 2014/11/17
  • 知っていると便利な gcc のオプション

    back GNU gcc を使う際に知っていると便利なオプションを挙げておきます。 注意: これが全部ではありません。gcc には、ほかにも プロセッサ依存の細かいオプションが山のようにありますが、それらは ふつうあまり利用しないので省略しました。 一般的なオプション -c, -o, -I, -g, -O, -L, -l 省略。それくらい知ってること。ちなみに -L と -l は ld へのオプションであり、順番が重要である。 -pipe 各ステージ間で情報のやりとりをするのに temporary file を使わず、 pipe を使うようにする。このオプションが Makefile などに 含まれているときは、たいてい除いたほうがよい。なぜなら、 多くのシステムでは、アセンブラ側がパイプに対応してないから。 言語仕様に関するオプション -ansi 厳格な ANSI 仕様でコンパイルする。こ

    rsakamot
    rsakamot 2014/10/17
  • GCC toolchain for LLVM

    rsakamot
    rsakamot 2014/10/17
  • GCC 4.8.2をビルドしてホームディレクトリにインストール - 学生時代に頑張ったことが何もない

    概要 あるサーバ上でC++11の機能をフルに使いたかったがGCCが古かったのでGCC 4.8.2を新たにインストールした.管理者権限が無いのでソースからコンパイルして$HOME/localにインストールした. 環境 OS Linux x86_64 元のGCC 4.3.2 手順 # Download GCC 4.8.2 wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2 tar xjf gcc-4.8.2.tar.bz2 cd gcc-4.8.2 # Download GMP 5.1.3 wget https://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.bz2 tar xjf gmp-5.1.3.tar.bz2 mv gmp-5.1.3 gmp #

    GCC 4.8.2をビルドしてホームディレクトリにインストール - 学生時代に頑張ったことが何もない
    rsakamot
    rsakamot 2014/10/16
  • Prerequisites for GCC - GNU Project

    Prerequisites for GCC GCC requires that various tools and packages be available for use in the build procedure. Modifying GCC sources requires additional tools described below. Tools/packages necessary for building GCC ISO C++11 compiler Necessary to bootstrap GCC. GCC 4.8.3 or newer has sufficient support for used C++11 features. Versions of GCC prior to 11 also allow bootstrapping with an ISO C+

    rsakamot
    rsakamot 2014/10/16
  • 鬼斬: ターゲット環境/クロスコンパイラの構築方法/gcc-ppc64

    概要 † 必要なもの † binutils gcc glibc カーネルヘッダ gmp,mpfr,mpc gcc, texinfo, m4, bison, gawk, rpm2cpio, gperf これらは事前にインストールしておくこと 作業手順概要 † binutilsを作成 glibcのヘッダだけ作成 glibc構築用gccの作成(C言語のみ) glibcの構築 glibc構築用gccの作成(C言語のみ)2回目 glibcの構築 フルgccの作成(すべての言語) glibcとgccはお互いに依存しているので,何回かに分けて無効オプションを外しながら構築を繰り返す必要がある 注意 † configure,makeを行う場合は,必ずソースがおいてあるディレクトリ以外で行うこと 文中では,ソース中にworkと言うディレクトリを掘り,そこからの相対パス(../configureなど)で実行し

    rsakamot
    rsakamot 2014/10/15
  • configureのbuild、host、targetの違い - maminusのメモか何か

    crosstoolのログなんかを見ていてようやく理解してきた気がするけど、Linuxとかのパッケージをクロスコンパイルするときにconfigureの引数に--build、--host、--targetをどう指定したら良いのか、自分の中で整理がついてきたんじゃないかと思う。 たぶんこうだと思う。 引数 指定する内容 --build コンパイルPC --host makeして作ったプログラムの実行環境 --target クロス開発におけるターゲット環境 普通のコマンド類は「実行環境==ターゲット」だから $> ./configure --prefix=/hoge/sysroot --build=i386-pc-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu になると思う。*1 それで、クロス

    configureのbuild、host、targetの違い - maminusのメモか何か
    rsakamot
    rsakamot 2014/10/15
  • Installing GCC: Configuration - GNU Project

    Installing GCC: Configuration Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure for both native and cross targets. We use srcdir to refer to the toplevel source directory for GCC; we use objdir to refer to the toplevel build/object directory. If you obtained the sources by cloning the repository, srcdir must refer

    rsakamot
    rsakamot 2014/10/15
    --program-suffixを忘れてた
  • GCC 4.9リリース

    GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF) GCC 4.9がリリースされた。少なくとも、公式Webサイトのトップページからは、リリースされたことになっている。ただし、なぜかリンクをたどると GCC 4.9 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) GCC 4.9がリリースされた。興味深い変更点を上げると。 大昔の、もはや保守もテストもされていないようなプラットフォームのサポートがobsolete扱いになった。もし、活発な活動が行われない場合、次のリリースでは取り除かれるそうだ。特に、Solaris 9が挙げられている。 Cla

    rsakamot
    rsakamot 2014/10/15
  • GCC 4.9 is doing “some seriously crazy shit” according to Linus Torvalds | Hacker News

    rsakamot
    rsakamot 2014/10/15
  • マイクロデータベース管理システムの実装

    #include <assert.h> int getNumberOfDays(int month) { assert(1 <= month && month <= 12); /* うるう年は無視 */ static int days[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; return days[month - 1]; } ここでは、変数monthが1~12の間にあることを条件として指定しています。 プログラム実行時にassertに指定された条件を満足していないと、その時点で

  • Creating and installing GCC 4.6.2 rpms for RHEL6.x

    rsakamot
    rsakamot 2014/10/14
  • CentOS 6.3へgcc4.8.0をインストール - HPCメモ

    仕事でCentOS 6.3な環境でテストプログラムを書いていて、乱数が必要になったので、ふと思いたってc++11のメルセンヌツイスタを使ってみようとしました。 ところが、標準でインストールされているg++は $ g++ --version g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULmmAR PURPOSE. このバージョンだとstd::mersenne_twister_engi

    CentOS 6.3へgcc4.8.0をインストール - HPCメモ
    rsakamot
    rsakamot 2014/10/14
  • Linux共有ライブラリの簡単なまとめ - wagavulinの日記

    Linuxで共有ライブラリ(*.so)を作るようになったのでちょっと勉強してみた。今までは使うだけだったので、以下のようなことは知っていた。作るときはgccの-sharedオプションを使う。使うときはgccの"-lライブラリ名"でリンクするライブラリを指定する。リンク時のライブラリ探索パスは-Lオプションで指定する。実行時のライブラリ探索パスは/etc/ld.so.confに書いてあるディレクトリ。環境変数LD_LIBRARY_PATHでも指定可能。ライブラリを作るときは、.cから.oを作るときに-fPICをつけるといいらしい。新しくライブラリを入れたときはldconfigするといいらしい。逆に今まであまり知らなかったこと。ほとんどのライブラリはlibhoge.so, libhoge.so.1, libhoge.so.1.1のように3つくらいのファイルがあり、libhoge.soやlibh

  • GCC をソースからビルドする修行してみた - Qiita

    C++11 が使えない?最新の GCC 使えばいいじゃない! sudo 権限がないからインストールできない?ビルドすればいいじゃない! はい。C++11 が使えないのはちょっと人権がないと思うので、そのためだけに GCC の最新版をビルドしてみました。まぁ、ほぼマニュアル通りに実行しただけなので、つまずいた所とかをメモ書き程度に。 uda@host:~$ uname -srmo Linux 2.6.32-5-amd64 x86_64 GNU/Linux uda@host:~$ cat /etc/debian_version 6.0.6 uda@host:~$ /usr/bin/gcc --version gcc (Debian 4.4.5-8) 4.4.5 Copyright (C) 2010 Free Software Foundation, Inc. This is free soft

    GCC をソースからビルドする修行してみた - Qiita
    rsakamot
    rsakamot 2014/10/10
  • Page Redirection - GNU Project

    This page has been incorporated into another. If you are not redirected automatically, click here. For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at gcc@gcc.gnu.org. All of our lists have public archi

  • gcc 逆アセ

    GCC の処理の流れ GCC を起動すると、前処理(preprocessing)、コンパイル、アセンブル、リンクの 4 段階で処理が行われます。全体的(overall)オプションを使うとこの一連の処理を途中の段階で停止することができます。次のプログラム hello.c を例にとってこの課程を覗いてみましょう。 #include <stdio.h> main() { printf("hello, world\n"); } まず hello.c の前処理だけしてその出力を覗いてみましょう。コマンドラインから、次のように入力します。 $ gcc -E hello.c | sed '/^[ ]*$/d' | less ヘッダファイル stdio.h が読みこまれて展開され、データ型の定義や、関数のプロトタイプ宣言がされているのが分かります。次に処理を全処理、コンパイルで止めてみます。コマンドライン

  • GNU開発ツール - 組み込み Linux 開発の手引き - アットウィキ

    Linux上でプログラムの開発を行うときには、GNU開発ツール(gccなど)を使うのが一般的です(もちろん、ほかの開発ツールを使う場合もあります)。 組み込みLinux開発を行う上では、GNU開発ツールに慣れ親しんでおくことが必須になります。 gccはGNU開発ツールの中でもっとも重要なツールです。すでに知っている方も多いとは思いますが、プログラム言語をコンパイルするときに使うツールです。プログラムから最終的に実行ファイルを作成するためにgccが行うことは、必要なオプションとともに別のサブプログラム(cpp、cc1、as、collect2)を順番に呼び出すことです。

    GNU開発ツール - 組み込み Linux 開発の手引き - アットウィキ
    rsakamot
    rsakamot 2010/11/07
  • スレッド 公開討議:h8300-elf-なツールでlibm.a の関数がリンクできない - eCos/RedBoot for H8/300 - OSDN

    h8300-elf-なツールでlibm.a の関数がリンクできない (2002-07-08 22:51 by mugi #1280) はじめまして、 私はハードの設計と組み込みソフトの開発を仕事にしています。 諸般の事情で1年少し前からSH,H8シリーズのCPUをハード開発のベースにしています。 ソフト開発のベースとしてGNUProのツールとeCosに目をつけていたのですが、 最初の敷居が高くて、KMCやYellowSoftのツールでお茶をにごしていました。 ところが、2ヶ月ほど前にysatoさんの「eCos/RedBoot for H8/300H 移植日記」を見つけて、なんとかH8とSH環境でeCosを使えそうな希望が見えてきました。 このプロジェクトの発展に大いに期待しています。 今までWindows/DOSオンリーのベースでやってきたものですから四苦八苦してやっとSH-elfなツール

    スレッド 公開討議:h8300-elf-なツールでlibm.a の関数がリンクできない - eCos/RedBoot for H8/300 - OSDN
    rsakamot
    rsakamot 2010/07/22