タグ

gccとc++に関するmikurassのブックマーク (9)

  • ライブラリの基礎知識

    2000.03.11 初版 ライブラリは、再利用を目的として作成されたコンパイル済みの関数の集合です。 linux以外のOS別 Shared Library の構築・使用ガイドは、 http://www.dais.is.tohoku.ac.jp/~kabe/vsd/dynald.htmlへどうぞ。 ライブラリの名前の先頭は、lib から始まります。Linux のライブラリには次の3種類あります。 スタティック 共有 ダイナミック スタティックライブラリは、コンパイル時にコードがプログラムに組込まれます。 モジュールサイズが大きくなりますが、別のマシンにバイナリで配布したときに そのライブラリがなくても動作します。 .a で終わるファイルです。 共有ライブラリは、プログラムの実行時にロードされます。マシンによっては、 その共有ライブラリがなかったり、バージョンが違ったりして、動作しないことが

  • 1. ガイド — OMakeマニュアル 日本語訳

    1. ガイド¶ あなたがOMakeを始めて使うのであれば、 2. OMakeクイックスタートガイド はどのようにプロジェクトを始めるべきなのかについて、簡単に説明してくれるでしょう。 3. OMakeビルドサンプル ではプロジェクトをビルドするための、より詳細なコードサンプルを紹介しています。そして 4. OMake言語の概要と構文 では実際にプログラミングするときに役立つ、いくつかの一例を紹介しています。 1.1 注意事項¶ OMakeマニュアル 日語訳 v1.3.2 このドキュメントは OMake バージョン0.9.8.6の マニュアル を日語訳したものです。原文のニュアンスを忠実に翻訳するよう心がけていますが、意図しない翻訳ミスやドキュメントの不備があるかもしれません。よって、 内容の正確さについて保証することはできません。 2. クイックスタート OMakeを利用するためのクイ

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • Development/C++/静的ライブラリ - PukiWiki

  • CDT/RSEによるクロスコンパイルとリモートデバッグ

    CDT/RSEによるクロスコンパイルとリモートデバッグ:生産性向上への道 Eclipseで行うC/C++開発(3)(1/4 ページ) 前回は、サンプルアプリケーションを使って、C/C++開発環境CDTの機能を紹介いたしました。CDTのC/C++エディタやコンパイラ連携機能、グラフィカルビルド機能を用いることで、C/C++アプリケーションの開発を効率的に行えることが分かったと思います。 今回は、前回と同じサンプルアプリケーションを用いて、CDTでの“クロスコンパイル”の方法、Remote System Explorer(RSE)での“リモートデバッグ”の方法について解説します。また、RSEによるリモート操作機能についても併せて紹介します。 CDT、RSEの概要、インストール方法については第1回「組み込み開発におけるEclipseの有効性」を参照してください。 CDTでのクロスコンパイル クロ

    CDT/RSEによるクロスコンパイルとリモートデバッグ
  • gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ

    ゆとりなもので,ついこないだまで動的リンクと静的リンクの違いがわかっていなかった.動的リンクというのが理解できた頃,そっかユーティリティライブラリは自分で共有ライブラリ作ってしまえばいいんだ,というごく当たり前のことが理解できた. UNIXをさわりはじめていた初期の頃,mecab.soのシンボリックが〜〜という用なハマりがあったのだけれど,あれは要するに実行時に共有ファイルへのパスを指定してあげればよかっただけのこと. わかると当たり前だけれど,わからないと「何がわからないのかわからない」状態に落ち込むなぁ,と改めて思いました. (幸いなことに,僕の周りには「ゆとり乙ww」と指導してくれる方々がいるので認識できるようになるのですが,少なくとも大学(院)時代はそうでなかったわけで,ゆとりスパイラルの恐ろしさを体感した気がしています.) というわけで自分用共有ライブラリの作り方をきちんと理解で

    gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ
  • 静的ライブラリのリンク時にundefined referenceエラーが出る(gcc)

    静的ライブラリのリンク時にundefined referenceエラーが出る(gcc) 概要 gccでリンク時にundefined referenceエラーが出る場合がある。 通常はオブジェクトやライブラリの指定忘れが原因であるが、 静的ライブラリをリンクする順番に間違いがあって出る場合もある (自分でMakefileを書く場合にこのミスをすることが多い) リンクの順番には依存性があり、あるオブジェクトが静的 ライブラリ内の関数を呼び出すときには呼び出される側の ライブラリは「後で」リンクする必要がある。 例えば foo.o が静的ライブラリ libfoo.a 内の関数を使用している、つまり foo.o → libfoo.a という依存関係があるとき、 g++ -o foo libfoo.a foo.o とするとundefined referenceエラーが出る。従って g++ -o fo

  • ライブラリの構築

    第 6 章 ライブラリの構築 この章では、ライブラリの構築方法を説明します。 ライブラリとは ライブラリには 2 つの利点があります。まず、ライブラリを使えば、コードをいくつかのアプリケーションで共有できます。共有したいコードがある場合は、そのコードを含むライブラリを作成し、コードを必要とするアプリケーションとリンクできます。次に、ライブラリを使えば、非常に大きなアプリケーションの複雑さを軽減できます。アプリケーションの中の、比較的独立した部分をライブラリとして構築および保守することで、プログラマは他の部分の作業により専念できるようになるためです。 ライブラリの構築とは、.o ファイルを作成し (コードを -c オプションでコンパイルし)、これらの .o ファイルを CC コマンドでライブラリに結合することです。ライブラリには、静的 (アーカイブ) ライブラリと動的 (共有) ライブラリ

  • 第6回 LinuxでC/C++言語のコンパイルを試す

    今回は,最新Linux(Ubuntu 8.04 LTS 日語ローカライズド Desktop CDをインストールしたマシン)上で,C/C++言語で記述したプログラムをコンパイルして動かしてみます。また,4ページ以降では,WindowsにインストールしたVMware Player上で,「Ubuntu 8.04 LTS 仮想マシン」を動かした場合を想定し,具体的な操作方法を紹介します。 これまでは,オープンソースの基事項や,Linuxコマンドの必要最小限の使い方を説明してきました。 今回はいよいよ,Linux上でC/C++言語を用いてソースコードを作成し,コンパイルして実行する流れについて解説します。Linuxディストリビューションの上で,「どのようにコードを書いて,コンパイルし,実行するのか」について,具体的なイメージをつかんでください。 開発環境の準備 多くのLinuxディストリビューシ

    第6回 LinuxでC/C++言語のコンパイルを試す
  • 1