タグ

gccとlinuxに関するmikurassのブックマーク (10)

  • Shared Object(.so)の勉強 - ぱせらんメモ

    いつの間にかはてなダイアリー市民になっていた。 立ち上げが去年の10月だったので1年以上かかったことになる。おせぇ。月に多くて5エントリぐらいだしな。 30日に1回は書いてないと剥奪されてしまうらしいので頑張って書いてみるぜ。 普段はPHPでWebシステムの開発をしているというのに、突然.soな共有ライブラリを扱った仕事が舞い込んできたのでお勉強。 C/C++自体はDOSやWindowsでよくやっていたのだがLinux上での開発は初めてだ。 WinMain()から始まってメッセージループがあってWindows API使いまくり、みたいな開発は得意だがLinuxはさっぱりわからん。 同じ言語でも土俵が違うだけで結構辛い戦いが予想される。ていうか、OSの違い以前にGUIとCUI(今回はCUIどころかアプリでもない)ってだけでも全然違うのに、「C言語できるんでしょ?」みたいなのはやめてほしい。

    Shared Object(.so)の勉強 - ぱせらんメモ
  • ライブラリの基礎知識

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

  • GOGA - 数式の夢とコンピュータの現実: UTF8のソースコードをgccとVCで共有すること

    そもそも私はコンソールプログラムしか書かないので、VisualStudioを使う質的な意味はないのですが、単にIntellisenseを使いたくてVSを使っています。格的にコードを作っているときなどは、Intellisenseが無いと頭がこんがらがって辛い。さらに、日語を処理するプログラムも書かないので、日語部分はコメントのみ。しかし、このコメントを英語で書いたりするとすぐ自分で自分のコードがわからなくなってしまうので、やはりここは日語で書きたい。VSの環境だけならば、なにも考えずに(文字コードのことなど考えずに)すむのですが・・・。 しかし、私の場合そのコードを実行するのは殆どLinux上だったりするので、バグ取りとか細かい修正はLinux上で行います。そのときに使うのは主にvi(実際はvim)。で、viは漢字コードの違いを吸収してくれるので、SJISでもUTF8でも編集できる

  • ライブラリ

    スタティックライブラリの作成 1. はじめに 共通の関数を複数のプログラムで使い回すとき、ライブラリにした方が楽。 ということで挑戦。 2. 次に とりあえず腕ならし。簡単な関数をつくってみる。 あっさりできてしまった。 ソースは下。必要最低限しか書いていないから、見れば分かるでしょう。 Makefile error.c error.h util.c util.h main.c lib.tar.gz‥上のファイル全部 3. 一応説明 error.c、util.cからライブラリをつくり、名前はlibutil.aとする。 そして、それとmain.cをいっしょにコンパイルする。それだけ。 手でコンパイルするとすると、以下のようになる。 % gcc -c error.c % gcc -c util.c % ar r libutil.a error.o util.o % ranlib libutil

  • Development/C++/静的ライブラリ - PukiWiki

  • gccにおけるatomic操作命令の個別関数

     gccとVC x86/x64環境で開発する上で, gccとVCはどちらも非常に優れたC/C++コンパイラです. ただLinuxWindowsのどちらの環境でも動作するようなC/C++コードを書くためには, gccとVC, およびそれらが動作するOSの違いが問題になることがあります. ここではそれらの違いについてまとめていきたいと思います. なお説明を簡単にするためにマクロを多用していますが実際には可能なら別の手段をとるか, 名前がぶつからないような命名規則に則ったマクロ名をつけることをお薦めします. 対象 定義済みマクロ 有用なマクロ コンパイルオプション 演算子の代替表現の抑制 日語のコメント 型 pragma attributeとdeclspec ファイル入出力 テキストとバイナリ 巨大なファイル static変数の初期化 snprintf 例外ハンドラ intrinsic関数

  • 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によるクロスコンパイルとリモートデバッグ
  • 静的ライブラリのリンク時に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回 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++言語のコンパイルを試す
  • [ThinkIT] 第3回:ソースコードからApacheをインストールする基本(前編) (1/3)

    「第2回:Apacheをインストールしてみるのは難しくない」ではApacheをバイナリパッケージからインストール方法を説明しました。今回はソースコードからApacheをインストールする方法を解説します。 ソースコードからApacheをインストールする方法は次の通りです。 NO ステップ 概要

  • 1