既存の長いCソースコードを変更する必要があります。リンカーによって使用されるライブラリのディレクトリの場所など、さまざまなコンパイラオプションを定義するトップレベルのMakefileがあります。MakefileからCプログラムに変数をインポートする
ような何か:
今LD_OPTIONS = $(PATH_TO_MYLIB1) $(PATH_TO_MYLIB2)
、私はこれらのライブラリを使用するためにdlsym()
とdlopen()
を使用しての代わりに、明示的にリンクを考えています。このためには、私はライブラリのパスが必要です。
dlopen(path_to_lib , RTLD_NOW) ;
変数をMakefileからどのように使用して自分のプログラムで使用できますか?私は "echo
とsystem()
"のようなものを使用することを考えました。しかし、もっと良い解決策があると私は期待しています。あなたのmakefileで:-)
は、あなたがそのようなことをやろうとしている場合は、それが#warningを行うには、おそらく良いでしょうか#ifndefブロック内の#errorは、実行時に破損する任意の値に割り当てるのではなく(恐らく、dlopen()がいつ呼び出されるかは分かりません) –
正しい。 – Nifle
"ifndef ... error"というものが本当に必要です。マクロが定義されていないと、 "unresolved symbol PATH_TO_LIB"リンカーエラーが表示されます。 – qrdl