タグ

c++に関するnilabのブックマーク (204)

  • 静的ライブラリのリンク時に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

    nilab
    nilab 2009/03/10
    静的ライブラリのリンク時にundefined referenceエラーが出る(gcc) : foo.o が静的ライブラリ libfoo.a 内の関数を使用しているとき g++ -o foo foo.o libfoo.a と先にfoo.oを書かなくてはいけない。
  • 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 - 共有ライブラリへの依存関係を表示する
  • - 株式会社エスロジカル - 技術ドキュメント UNIX の C言語:gccのstaticオプション

    技術ドキュメント目次 -> UNIX の C言語 -> gccのstaticオプション 技術ドキュメントは、2002~2004年頃に作成したものが多いです。 内容が古くなっていることもあるかと思いますが、ご了承ください。 【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。 ◆ gccのstaticオプション(スタティックリンクでコンパイル) Unix の C言語で開発したプログラムをいくつかの環境で稼動させる際、 環境によってライブラリのインストール状況が異なっていると、 それぞれの環境ごとでの動作確認が必要になったりで、 少々悩ましい場合があるかもしれません。 (あまり、そのようなことは実際には少ないかと思いますが。) そのようなとき、 gcc に -static オプションを付加してコンパイルを行うと、 実行バイナリにライブラリが組み込まれ

    nilab
    nilab 2009/03/06
    - 株式会社エスロジカル - 技術ドキュメント UNIX の C言語:gccのstaticオプション : 「gcc に -static オプションを付加してコンパイルを行うと、 実行バイナリにライブラリが組み込まれ」
  • はてなブログ | 無料ブログを作成しよう

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

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

    by Zachary C. Miller Introduction This document is designed as a collection of tips and tricks for writing Apache API modules. These are the non-obvious or under-documented things that I have learned in the course of writing Apache modules in C++ for Linux. Some of the recipes are useful in C or C++ but some are specifically geared towards C++. Some are compatible with any platform but many may be

    nilab
    nilab 2009/03/05
    Apache API C++ Cookbook
  • C++による数値・文字列の変換

    C++ではsstreamを使うことで、数値から文字列、文字列から数値への変換を行うことができる。 #include <iostream> #include <sstream> using namespace std; int main() { stringstream ss; double pi; // 文字列から数値に変換. ss << "3.14"; ss >> pi; cout << showpoint << pi << endl; ss.clear(); // 状態をクリア. ss.str(""); // 文字列をクリア. // 数値から文字列に変換. ss << 123 << "NUMBER"; cout << ss.str() << endl; return 0; } 3.14000 123NUMBER

    nilab
    nilab 2009/03/05
    良いもの。悪いもの。: C による数値・文字列の変換 : std::stringstream
  • 【C++】数値型から文字列へ型変換、または文字列から数値型へ型変換する。【boost】

    ←フエルチラシノウラ。トップページへもどる。 【C++】数値型から文字列へ型変換、または文字列から数値型へ型変換する。【boost】 C++ boostライブラリ キャスト 型変換 数値 文字列 string STL Javaでは簡単に出来てしまう数値から文字列への型変換ですが、C++の場合だと結鴻<塔hクサイです。 C++の場合は、charにsprintfしてからstringに変換しなければなりません。これって二度手間ですね。 なので、ここでは簡単に変換する方法を解説したいと思います。 ここで利用するライブラリは、今となってはSTLのごとくほぼ標準ともいえるほど知名度も上昇したBoostライブラリです。 では早速やり方から説明します。 ライブラリへのパスは通っているものとして話を進めます。 数値から文字列へ変換。 double d = 1234.56; 上記のようなdouble型の変数d

    nilab
    nilab 2009/03/05
    【C 】数値型から文字列へ型変換、または文字列から数値型へ型変換する。【boost】 : string str = lexical_cast<string>(d); double d = lexical_cast<double>(str);
  • http://ml.tietew.jp/cppll/cppll/thread_articles/8971

    nilab
    nilab 2009/03/05
    スレッド: [cppll:8971] switch文の中で... : "jump to case label" "crosses initialization of" switchのcaseの中で変数宣言すると、スコープがあいまいということでコンパイラに怒られる。cygwinでは通ったのにlinuxでは通らないなんて。。。
  • c++ライブラリCLXを試してみました。 - @camelmasaの開発日記

    仕事で、どうしてもc++を使ってhttpリクエストをしなくてはならなくて、実現出来るようなライブラリやサンプルを色々探しました。 http://ja.doukaku.org/18/lang/cpp/ http://clx.cielquis.net/ どう書く?orgに載っているcurlppを使用したサンプルでは、curlppを上手くインストールする事が出来なくて断念。 しかし、CLX C++ライブラリはファイルをダウンロードするだけで良いので、インストールする作業が発生せず、簡単に導入する事が出来ました。 wget http://clx.cielquis.net/download/clx_0.12.3.tar.gz tar zxvf clx_0.12.3.tar.gz vi httprequest.cpp下記が僕のブログへhttpリクエストする場合のサンプルです。 httprequest.

    c++ライブラリCLXを試してみました。 - @camelmasaの開発日記
    nilab
    nilab 2009/02/24
    c++ライブラリCLXを試してみました。 - camelmasaの開発日記
  • boost::asioで簡単SSL通信 - okadyの日記

    SSLって何? なんか暗号化するやつやろ 認証がどーのこーの 安全っぽい っちゅう人向けに、とりあえずSSLの簡単な解説から。 通信、認証の手順はググればようけ出てくるからパスで。 OSI参照モデルとIP、TCPのパケット構成を知ってたらSSLは簡単 IPパケットの構成:IPヘッダー+TCPパケット TCPパケットの構成:TCPヘッダー+上位層で作られたデータ 上位層で作られたデータっちゅうのは、 HTTPとかFTPでクライアントがサーバーにデータを送信する例やと コマンドのことやと思ってもらったらええかな。 普通はアプリケーション層で作られたデータを指すわけやけど、 SSL通信やとアプリケーション層とトランスポート層の間にある セッション層でデータを暗号化するだけ。 つまり、 (非SSL)TCPパケットの構成:TCPヘッダー+上位層で作られたデータ (SSL)TCPパケットの構成:TCP

    boost::asioで簡単SSL通信 - okadyの日記
    nilab
    nilab 2009/02/24
    boost::asioで簡単SSL通信 - okadyの日記 : boost::asioでHTTP通信 : C++ってHTTP通信するだけでほんとに面倒なのねorz
  • Doxygen

    ソースコード・ドキュメンテーション・ツール Doxygen は、C++、C、Java、Objective-C、Python、IDL (Corba、Microsoft 風)、Fortran、VHDL、PHP、C# 向けのドキュメンテーション・システムです。 D にもある程度対応しています。 Doxygen には、次の3つの利点があります。 文書化されたソースファイルのセットから、 オンライン・ドキュメント・ブラウザ (HTML形式) やオフラインのリファレンス・マニュアル (形式) を生成することができます。 RTF (MS-Word)、PostScript、ハイパーリンク PDF、圧縮 HTML、Unix man ページ形式の出力もサポートされています。ドキュメントは、ソースから直接抽出されます。これにより、ドキュメントとソースコードの一貫性を保つことがとても容易になります。 Doxyge

    nilab
    nilab 2009/02/20
    Doxygen : C++、C、Java、Objective-C、Python、IDL (Corba、Microsoft 風) 向けのドキュメンテーション・システムです。 PHP、C#、D にもある程度対応しています
  • Doxygen: Main Page

    Generate documentation from source code Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D. Doxygen can help you in three ways: It can generate an on-line docu

    nilab
    nilab 2009/02/20
    Doxygen : Source code documentation generator tool Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

    nilab
    nilab 2008/12/28
    Google C スタイルガイド 日本語訳 | textdrop
  • JavaとC++の比較 - Wikipedia

    C++においてconst修飾されたメンバ関数は、関数内でメンバ変数を変更することができなくなる(mutable指定された変数を除く)。Javaには相当機能はない。 Javaにおいてfinal修飾されたメソッドは派生クラスでオーバーライドできなくなる。また、final修飾されたクラスは派生クラスを定義できなくなる。なお、C++11ではJavaのようにメンバ関数のオーバーライドや派生クラスの定義を禁止するfinal修飾子が追加された。 C++goto文をサポートする。Javaはサポートしないが、ラベル付break文とラベル付continue文で、構造上ややgotoライクな機能を提供する。実際には、Javaは、コードを読みやすくするため、構造化制御フローを強要する。 C++Javaが持たないやや低レベルな機能を提供する。C++には、特有のメモリ記憶位置や低レベルオペレーティングシステムコンポ

    nilab
    nilab 2008/11/26
    JavaとC の比較 - Wikipedia
  • Kazuho@Cybozu Labs: C++ テンプレートを使って MBCS と Unicode ちゃんぽんなコードを書く話

    « Greasemetal (Google Chrome 用 Greasemonkey) を公開しました | メイン | Greasemetal 0.2 をリリースしました » 2008年09月12日 C++ テンプレートを使って MBCS と Unicode ちゃんぽんなコードを書く話 あちこちから寄せ集めたコードを組み合わせるようなプログラムを書いていると (Greasemetal のことですね)、プログラム内に MBCS 前提のコードと UTF16 前提のコードが混在することが往々にして発生します。 C++ の世界のみで完結できるのであれば、型テンプレートと関数の多重定義を使って総称的なコードを簡単に書けるのですが、実際は、MBCS 版と UTF16 版で関数の名称が異なる C API を呼び出す必要が出てきたりします。具体的には、RegQueryValueExA と RegQuer

    nilab
    nilab 2008/10/17
    Kazuho@Cybozu Labs: C++ テンプレートを使って MBCS と Unicode ちゃんぽんなコードを書く話
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    nilab
    nilab 2008/09/10
    C++編(言語解説) 第19章 静的メンバ : static .h に宣言。 .cpp には実体
  • More C++ Idioms - Wikibooks

    C++ はあまりに『熟練者に優しく』なってしまった」(C++ has indeed become too "expert friendly") Stroustrup 氏の言は真実である。なぜなら熟練者は言語のイディオムに深く精通しているからである。プログラマが理解するイディオムの増加に従って、言語は彼あるいは彼女にとってよりフレンドリーになる。この open content book の目的はほどほどに C++ に精通しているプログラマに対して現代的な C++ のイディオムを提示し、C++ をよりずっとフレンドリーに感じるレベルにまで知識を引き上げる助けと成る事である。書は熟練した C++ プログラマが C++ を使ってプログラミングや設計を行う際に用いる事の多い再利用可能なイディオムの網羅的なカタログと成るよう意図されている。これは、それらのテクニックや語彙をひとまとめにしようという

    nilab
    nilab 2008/09/03
    More C++ Idioms - Wikibooks:「熟練した 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)」を対象