cとx.so共有ライブラリを生成するために使用します。 xc私はメインモジュールにあるいくつかの関数を使用したいメインファイルとexe)、種類の再帰的依存。 これを行う方法があります(これらの関数をx.cにコピーしないでください)。 私は-rdynamicについて読みましたが、完全に取得できませんでした。 私は 'somefunc'を宣言していません。 (somefuncがメインモジュールであり、私はXC内でextern somefunxをしましたが、うまくいきませんでした) 私はあなたが関数ポインタの引数をコールを取り戻すためにあなたの共有ライブラリで影響を受けるのメソッドを定義することができ おかげCで、共有ライブラリファイルのメインプログラムファイルから関数を使用する方法
2
A
答えて
2
を教えてください、その後、呼び出し時に、メインモジュールの関数を引数として渡します。例えば。
// Library
void dosomething (int arg, void (*callback)(void)) { ... }
// Main module
void called_from_lib(void) { ... }
dosomething(10, called_from_lib);
0
これはUNIXのようです。関数dlopen()は、ライブラリ内の関数をコンパイル時に参照せずに、プログラムにリンクしなくても、動的に呼び出すことができます。 dlopen()はPOSIXなので、現代的なUNIXの箱に入れてください。ここ
例:
http://www.dwheeler.com/program-library/Program-Library-HOWTO/x172.html
LD_LIBRARY_PATHもあります。この環境変数を使用すると、同じコードを使用できますが、コンパイル時にそこになかったライブラリを置き換えることができます。これはまさにあなたが求めていることではありませんが、dlopenに頼らずにアドホック共有ライブラリを使用する行に沿って何かをすることができます。 HPUXのようないくつかのシステムも同じことをするSHLIB_PATHをサポートしています。
関連する問題
- 1. cライブラリファイル関数をオーバーライドしますか?
- 2. main関数からdll(C++)関数をC言語で使用する方法#
- 3. int []をc#から共有メモリを使用してC++に渡す方法
- 4. 共有ライブラリファイル(* .so)のヘッダファイル(* .h)を生成
- 5. マルチファンクションCファイルを外部関数用の共有ライブラリにマージする方法
- 6. C++からlabviewネットワーク共有変数を書き込む方法
- 7. C#ライブラリファイルの編集方法
- 8. Haskellでスレッドセーフな共有変数を使用する方法
- 9. C#とJavaScriptの間で変数を共有する方法は?
- 10. RSpec変数を共有コンテキスト間で共有する方法は?
- 11. 複数の相互作用するCファイル間で共有変数を使用する方法は?
- 12. 共有ライブラリを使用するC/C++プロジェクトをサンドボックスにする方法
- 13. 関数間でロジックを共有する方法は?
- 14. 目的関数cでasin()関数を使用する方法
- 15. Parallel for C#で共有変数を使用する
- 16. ASP.Net:共有/静的関数でSystem.Web.UI.Control.ResolveUrl()を使用する
- 17. C言語の関数間でデータ値を共有する
- 18. marshmallowのデフォルト共有を使って共有する方法は?
- 19. whatsapp共有ボタンを使用して現在のURLを共有する方法
- 20. 共有変数を使用して2つのプロジェクト(VB.NET)間でデータテーブルを共有する方法
- 21. jenkins共有ライブラリファイルはどこに保存されますか?
- 22. インラインアセンブラを使用したGCCの共有ライブラリからの呼び出し関数
- 23. いくつかのjavascript関数でJavaコードから変数を共有する方法
- 24. Silverlightでxamlとc#の間の数値定数を共有する方法
- 25. EFで共有する外部キーを使用する方法
- 26. AARファイルの共有ライブラリでndk-stackを使用する方法
- 27. フォームベースの認証サイトで共有ポイントを使用する方法
- 28. webpackで親ディレクトリの共有ノードモジュールを使用する方法
- 29. Pythonの共有オブジェクトからC++関数を呼び出す最も良い方法
- 30. Cの3番目の関数で2つの異なる関数からポインタを使用する方法
OSとコンパイラは何ですか?あなたは 'somefunc()'を使って何をしようとしましたか?ここに投稿することができるように整理されたバージョンでは何の問題も起こらないはずです。 –