ARGENTO CUORE

 May the code be with you.

--.--.--[--] スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010.06.26[土] ライブラリの動的呼び出し

任意精度数演算とdouble,int等を使ったネイティブ演算の処理を切り分けるついでに、各演算を別個共有ライブラリにして、デフォルトはネイティブ、任意精度数演算を行う場合に、それ用のライブラリをロードするようにしてみた。

以下、そのメモ?的な何か。

共有ライブラリは、
$gcc -shared lib1.c -o lib1.so

で作れるが、-fPICオプションを付けたほうが早いらしいので、以下のコマンドで作る。
$gcc -shared -fPIC lib1.c -o lib1.so


以下のような関数を持つライブラリを作って、
void print(char *str){
printf("lib1: %s\n", str);
}


以下のようなコードでロードし呼び出す。
int main(void){
void *handle;
void (*func)(char* str);

handle = dlopen("./lib1.so", RTLD_LAZY);
if(handle == NULL){
/*エラー処理*/
}
func = dlsym(handle, "使用する関数名");
if(func == NULL){
/*エラー処理*/
}
func("hello");

dlclose(handle);
return 0;
}
スポンサーサイト

Comment






(編集・削除用)


管理者にだけ表示を許可

Trackback

http://ronor.blog81.fc2.com/tb.php/125-84741625

この記事にトラックバック(FC2Blog User)

Scala Feed

scala feed

FC2カウンター

プロフィール

RoNor

Author:RoNor
得意呪文はScalaですって言えるようになるのが夢です。
デスマーチ中、パーティメンバーの防御力を向上させたりさせなかったり。

検索フォーム

QRコード

QRコード

Copyright © 2009-2010 ARGENTO CUORE and RoNor All rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。