タグ

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

  • Linus氏のC++に対する最近の否定的見解 | taro-nishinoの日記 | スラド

    最近、Linus氏はまたしてもReal World TechnologiesのModerated DiscussionsフォーラムでC++に対する否定的見解を投稿したことは皆さんも御存知でしょう。主要な投稿は以下の5つです。 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110563&threadid=110549&roomid=2 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110577&threadid=110549&roomid=2 http://www.realworldtech.com/forums/index.cfm?action=detail&id=110618&threadid=110549&roomid=2 ht

    nilab
    nilab 2010/06/21
    Linus氏のC++に対する最近の否定的見解 - taro-nishino の日記
  • 汝の隣人のブログを愛せよ | LOVELOG

    au one netのブログサービス 『LOVELOG』は2014年6月30日をもちまして提供を終了致しました。 永らくのご利用、誠にありがとうございました。 引き続きau one netをご愛顧いただきますよう、よろしくお願い申し上げます。 ※お手数ではございますが、新ブログにて閲覧の皆さま向けにブログURL変更等をご周知いただけますよう、お願い申し上げます。

    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 環境切り分け
  • いやなブログ: 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」
  • 動的共有ライブラリのバージョン管理 - 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 Format)をサポートしない(みたい). $ nm オブジェクトファイル $ objdump --syms オブジェクトファイル

    オブジェクトファイルのシンボルテーブルを見る方法 - 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 - 共有ライブラリへの依存関係を表示する
  • はてなブログ | 無料ブログを作成しよう

    粗大ゴミに車輪を付けて捨てに行く マンションで暮らしていると自宅から粗大ゴミ置き場まで若干の距離があったりします。手で持てるサイズ・重量の粗大ゴミなら手で運べばよいし、それよりも一回り大きいくらいのものならマンション共用設備から台車を借りられる場合があります。 今回、キッチンで 10 年…

    はてなブログ | 無料ブログを作成しよう
    nilab
    nilab 2009/03/05
    2008-10-14 - yukinamiの日記 ~燃え尽きたぜ――真っ白にな~ : Linux::共有ライブラリの動的リンクと実行:Linux::共有ライブラリの静的リンクと実行:C++のライブラリファイルを生成:C形式で呼び出せるように extern "C"
  • 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)」を対象
  • 1