人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linux,unix環境でクラスライブラリを実行時リンクことは可能ですか。またその方法、用意すべき環境(ELF?、コンパイラ)を教えていただけますでしょうか。
関数の実行時リンクですと、dlopen 関数を使用すればいいと思うのですが・・

●質問者: ppainomi
●カテゴリ:コンピュータ
✍キーワード:ELF Linux UNIX クラス コンパイラ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● obache
●60ポイント

http://www.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/more-exam...

Linuxでのコンパイル、リンク、実行の方法はこれでどうでしょうか?

http://www.tldp.org/HOWTO/C++-dlopen/

「クラスライブラリ」ということで、C++のライブラリを使用するならば、こちらを参考に。

◎質問者からの返答

情報ありがとうございます。

実行時リンクでは、通常のクラスの作成

triangle* p = new triangle()

のようには生成できないのでしょうか。

出来ないとしたらその理由をお教えいただけるとありがたいです。

triangle*


2 ● obache
●60ポイント

http://www.tldp.org/HOWTO/C++-dlopen/thesolution.html#loadingcla...

2つ目のリンクはお読みになってないのでしょうか?そのものずばりの説明が書いてます。


呼び出す方のライブラリがバイナリで配布とかされてて、ここで示しているようにソースを変更できないんでしたら、それを wrap するようなクラスのライブラリを作って、自分で作ったそのライブラリをdlopenすれば良いでしょう。こんな風にplug-in みたいな形式で dlopen するようなものじゃないなら、コンパイル時にリンクしてもあまり変わりないような気もします。

◎質問者からの返答

アドバイスありがとうございました。参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ