2016-09-07 13 views
0

私は静的ライブラリをリンクに問題がある...automakeの未定義参照

私がチェックして...ライブラリを並べ替えたり、いくつかのオプションを使用するように、それを解決するためにいくつかのメソッドを進めてきた。..

しかし、すべてのものを私は仕事していませんでした..

- まず、私はnmコマンドで.aファイルをチェックしているので、リンクエラーが発生していると確信していますログ。 \ = \ -I $(LIBDIR)/libmicrohttpd.a \ -I $(LIBDIR)/libcryptopp.a:

だから、私は...以下のように

LOCAL_LINK_STATIC_LIBSを静的ライブラリをリンク。 ..

myprog_LDFLAGS = -lstdC++ -g -ldl -lpthread @ GLIB_CFLAGS @ $(LOCAL_LINK_STATIC_LIBS)

それを解決するために、他の方法はありますか?私は本当にあなたのフィードバックが必要です.. 読んでいただきありがとうございます。

答えて

0

名前には-lオプションを付けてください。 -lmicrohttpd。リンカは "lib"と ".a"または ".so"を追加します。 -Lオプションを使用して、ライブラリの検索パスを設定します。 -L$(libdir)

-lpthreadの代わりに-pthreadも試してみてください。 -lpthreadはpthreadライブラリにのみリンクし、-pthreadはいくつかの追加作業を行います。

+0

"-I $(libdir)/libmicrohttpd.a"で "-l"を指していたと思います。それは 'l'ではなく 'i'で、includeオプションです。 – owcred601

+0

ライブラリを実行ファイルにリンクするには、2つのオプションがあります。 [-L $(PATH)-lmicrohttpd]または[-I(i)$(PATH)/libmicrohttpd.a]ですが、最後の方法は機能していないため、問題です。 – owcred601

+0

'-I'は、C/C++ヘッダーファイルの検索パスを設定するために使用され、ライブラリをリンクするためには使用されません。 – rveerd