タグ

linuxとcに関するnilabのブックマーク (21)

  • atlsrv01-02 (SLC6)

    nilab
    nilab 2012/03/07
    atlsrv01-02 「一つの program 内での 32-bit code と 64-bit code の混在は出来ない」「混在している場合は、link の際に "/usr/bin/ld: skipping incompatible ... when searching for ..." という error message が出力される (static link の場合)」
  • libharu, how to compile (undefined reference to)

    nilab
    nilab 2012/01/17
    libharu, how to compile (undefined reference to) [Archive] - CodeGuru Forums : "./a.out: error while loading shared libraries: libhpdf-2.2.1.so: cannot open shared object file: No such file or directory" : export LD_LIBRARY_PATH=/home/hoge/lib で解決。
  • Manpage of STAT

    STAT Section: Linux Programmer's Manual (2) Updated: 2008-09-10 Index JM Home Page roff page 名前 stat, fstat, lstat - ファイルの状態を取得する 書式 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *path, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *path, struct stat *buf); glibc 向けの機能検査マクロの要件 (feature_test_

    nilab
    nilab 2010/05/24
    Manpage of STAT : 「stat, fstat, lstat - ファイルの状態を取得する」
  • ju11net九州体育(科技)有限公司

    nilab
    nilab 2010/05/24
    stat64/linux2.6 - LinuxKernelHackJapan : struct stat64 「linux2.6/include/asm-i386/stat.hにて定義」「64bit拡張ファイル状態」「stat/linux2.6に比べ、デバイス関係が32bitから64bitに拡張」
  • 安全加密检测

    nilab
    nilab 2010/05/24
    stat/linux2.6 - LinuxKernelHackJapan : struct stat 「linux2.6/include/asm-i386/stat.hにて定義」「ファイルの状態を保持」
  • http://www.google.co.jp/codesearch/p?hl=ja

    nilab
    nilab 2010/05/24
    errno.h - linux-2.4.34/include/asm-i386 - Code Search : http://kernel.org/pub/linux/kernel/v2.4/linux-2.4.34.tar.bz2 : linux-2.4.34/include/asm-i386/errno.h
  • errno.hを追跡していたらひどい目にあった - 川口耕介のブログ

    エラーコード12が何なのか調べようとして気軽に「less /usr/include/em-specific file. This file will test __need_Emath and _its/its/linux/linux/ errno.hを追跡していたらひどい目にあった - 川口耕介のブログ

    nilab
    nilab 2010/05/24
    errno.hを追跡していたらひどい目にあった - 川口耕介の日記 : <bits/error.h> <linux/errno.h> <asm/errno.h> <asm-generic/errno.h>
  • Manpage of ERRNO

    Section: Linux Programmer's Manual (3) Updated: 2008-07-09 Index JM Home Page roff page 名前

    nilab
    nilab 2010/05/24
    Manpage of ERRNO
  • 汝の隣人のブログを愛せよ | LOVELOG

    au one

    nilab
    nilab 2010/05/21
    しっくハック: メモリリーク検出:mtrace編
  • cross platform development - firewood's diary

    クロスプラットフォームというか、プラットフォーム依存というか、そういうことをよく扱っているのでメモ。基的にC/C++。 メモ プリプロセッサは、未定義の識別子を0として扱う。 従って、#if __GNUC__ >= 3はGCC3以上として使えるが、GCC2系かどうかを#if __GNUC__ < 3で判定しようとすると、GCCでないものも含まれるので注意が必要。 コンパイラ GCCかどうか #ifdef __GNUC__ #if __GNUC__ >= 3 // GCC3.0以上 Visual C++かどうか #ifdef _MSC_VER(VC++以外でも定義されている場合あり) #if _MSC_VER >=1000 // VC++4.0以降 #if _MSC_VER >=1100 // VC++5.0以降 #if _MSC_VER >=1200 // VC++6.0以降 #if _

    cross platform development - firewood's diary
    nilab
    nilab 2010/02/10
    cross platform development - 糸且之入Eヨ言己 : 「クロスプラットフォームというか、プラットフォーム依存というか、そういうことをよく扱っているのでメモ。基本的にC/C++。」 #ifdef 環境切り分け
  • gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ

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

    gccを用いたCの共有ライブラリの作り方 - シリコンの谷のゾンビ
    nilab
    nilab 2009/12/10
    gccを用いたCの共有ライブラリの作り方 - 睡眠不足?!
  • いやなブログ: Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか 通常、Linux の共有ライブラリを作るときは各 .c ファイルを PIC (Position Independent Code) となるようコンパイルします。しかし、実は PIC でコンパイルしなくても共有ライブラリは作れます。それでは PIC にする意味はあるのでしょうか。 さっそく実験してみます。 int func () { printf(""); printf(""); printf(""); } PIC でコンパイルするには gcc に -fpic または -fPIC を渡します。-fpic の方が小さく高速なコードを生成する可能性がありますが、プロセッサによっては -fpic で生成できる GOT (Global Offset Table) のサイズに制限があります。一方、-fPIC はどのプロセッサで

    nilab
    nilab 2009/12/04
    Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか - bkブログ:「非PICの共有ライブラリを作成することは可能ですが、実行時の再配置に時間がかかり、さらに他のプロセスとテキストが共有できない」
  • Linuxのgccのインクルードパス?

    gcc がデフォルトで検索するヘッダファイルとライブラリの場所は、以下のコマンドで確認することが出来ます。 gcc -print-search-dirs 確認していないので分かりませんが、まあ、基的には (gcc のインストール先)/include:/usr/include だと思います。 他のディレクトリにインストールされているヘッダファイルを検索するためには -I または -I- オプションを指定する必要があります。(-I- オプションを使っているところは見たことがありません) (ex.1) ヘッダファイルが /usr/local/include に存在する場合 gcc -I/usr/local/include ... (ex.2) ヘッダファイルが /usr/local/include と /opt/app/include に存在する場合 gcc -I/usr/local/incl

    Linuxのgccのインクルードパス?
    nilab
    nilab 2009/10/26
    Linuxのgccのインクルードパス? - 教えて!goo:「gcc がデフォルトで検索するヘッダファイルとライブラリの場所は、以下のコマンドで確認することが出来ます。gcc -print-search-dirs」
  • Linuxと64bit環境 VA Linux Systems Japan(ILP32, LLP64, LP64, ILP64)

    64bitプロセサのためのプログラムを、C/C++で書く際に注意すべき点の1つが、整数データモデルの違いです。 32bit環境ではポインタは32bitであり、int型と同じ幅でした。64bitプロセサのプログラミング環境では、ポインタの幅が64bitとなります。Cの言語仕様(ISO/IEC 9899:1999 Programing Languages - C[5]、C99)においては、intは「実行環境のアーキテクチャの暗示する自然な大きさ」となっており、64bitプロセサにおいては64bitとなりそうではありますが、そうではない実装が主流となっています。主な整数データモデルを【表1.2】に示します。

    nilab
    nilab 2009/06/05
    Linuxと64bit環境 VA Linux Systems Japan : C99:整数データモデルの比較:#include <stdint.h> <inttypes.h> uint32_t uint8_t int64_t int32_t:32ビット環境ではint、long int、ポインタが32bit:64bit Unixの多くではlong intが64bit:long int と void* の移植に注意
  • 動的共有ライブラリのバージョン管理 - torutkのブログ

    d:id:torutk:20081103でBoostライブラリのSONAMEについて調べていました。今回は、自分で作成するプログラムにおいて、動的共有ライブラリファイルのSONAMEの仕組みを使ってバージョン管理をする方法を模索しました。 やりたいこと C++のプログラムを動的共有ライブラリで作成・提供する際、ライブラリのバージョンアップにおいて、ソース互換性、バイナリ互換性の有無をバージョン番号で区別したい。 また、バイナリ互換性を失うバージョンアップの際は、誤って新しいバージョンのライブラリと古いライブラリ利用コードとを実行時にリンクできないようにしたい。 バージョン番号の付け方 バージョンアップには以下の種類があります。 ソース互換性も失う大きなバージョンアップ ソース互換性はあるがバイナリ互換性を失うバージョンアップ ソース互換性もバイナリ互換性もあるバージョンアップ Linux

    動的共有ライブラリのバージョン管理 - torutkのブログ
    nilab
    nilab 2009/03/11
    動的共有ライブラリのバージョン管理 - torutkの日記
  • 共有ライブラリの説明

    3. 共有ライブラリ共有ライブラリは、プログラム起動時にロードされるライブラリです。 共有ライブラリが適切にインストールされると、その後に起動される全てのプログラムは、自動的にその新しい共有ライブラリを使うことになります。 実際には、これよりもはるかに柔軟で洗練されています。なぜなら、Linux における共有ライブラリの実現方法のおかげで、次のことが可能となるからです。 ライブラリを更新しながらも、そのライブラリの古くて後方互換性のないバージョンを使いたいというプログラムを、引き続きサポートすることができる特定のプログラムを実行するとき、特定のライブラリ、もしくはライブラリ内の特定の関数でさえもオーバーライドすることができる既存のライブラリを使用してプログラムが動いている間にも、これら全てをおこなうことができる 3.1. 約束ごとこれらの望ましい特性すべてを共有ライブラリがサポートするため

    nilab
    nilab 2009/03/10
    共有ライブラリ so
  • Manpage of ar

    nilab
    nilab 2009/03/09
    Manpage of ar
  • オブジェクトファイルのシンボルテーブルを見る方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -

    *.o や *.so などのファイルに含まれるシンボル名の一覧を見るには readelf コマンドを使う. $ readelf -s オブジェクトファイル 昔は nm コマンド や objdump コマンドで同様のことが実現できたが,これらの古いツール達は elf形式(Executable and Linking F オブジェクトファイルのシンボルテーブルを見る方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -

    nilab
    nilab 2009/03/09
    オブジェクトファイルのシンボルテーブルを見る方法 - ぴょぴょぴょ?:*.o や *.so のファイルに含まれるシンボル名の一覧「$ readelf -s オブジェクトファイル」:古いツール「nm」「objdump --syms」
  • Manpage of LDD

    Section: User Commands (1) Updated: 14 March 1998 Index JM Home Page roff page 名前 ldd - 共有ライブラリへの依存関係を表示する 書式 ldd [-vVdr] program|library ... 説明 ldd はコマンドラインで指定したプログラムや共有ライブラリについて、 それぞれで必要とされる共有ライブラリを表示する。 共有ライブラリの名前に '/' が含まれていないと、 ldd は標準的な場所からライブラリを探そうと試みる。 ldd をカレントディレクトリにある共有ライブラリに対して用いるには、 ライブラリの名前に "./" を前置する必要がある。 オプション -v ldd のバージョン番号を表示する。 -V ダイナミックリンカ ld.so のバージョン番号を表示する。 -d リロケーションを実行し

    nilab
    nilab 2009/03/06
    Manpage of LDD : ldd - 共有ライブラリへの依存関係を表示する
  • Program Library HOWTO

    語訳:2004 年 9 月 17 日 (原文:2003 年 4 月 28 日、バージョン 1.20) この HOWTO はプログラマ向けであり、Linux におけるプログラムライブラリの作成方法と使用方法を説明するものです。 「静的ライブラリ (static library)」、「共有ライブラリ (shared library)」、「動的ライブラリ (dynamically loaded library)」を対象とします。 (訳注:この訳文では、「dynamically loaded library」のことを「動的ライブラリ」と呼ぶことにします。 世の中では、shared library のことを指して動的ライブラリと表現する例もありますが、それとは異なりますので注意してください。) Table of Contents1. はじめに2. 静的ライブラリ3. 共有ライブラリ3.1. 約

    nilab
    nilab 2008/09/01
    Program Library HOWTO : Linux におけるプログラムライブラリの作成方法と使用方法を説明するものです。「静的ライブラリ (static library)」、「共有ライブラリ (shared library)」、「動的ライブラリ (dynamically loaded library)」を対象