web-dev-qa-db-ja.com

Eclipse CDTで静的ライブラリをリンクする

ごめんなさい!私はこれをたくさんググってみました、そして答えを見つけることができません!それは私が知っている愚かなことです。

Eclipse cdtで静的ライブラリ(* .a)にリンクできません。それらをすべて「プロジェクト」->「設定」->「GCC C++リンカー」->「ライブラリ」にリストしました。 libが正しいことを確認するために絶対パスを使用しました...

-l/usr/local/lib/libboost_date_time.aが見つかりません

私が間違っていることは何でも愚かだと確信しています:(

編集-そして、実行時にライブラリをリンクしていることを言及する必要があります...

20
JonnyCplusplus

Linuxでコードをコンパイルしているときに(Windowsのバックグラウンドから)、同様の問題があり、静的ライブラリへの絶対パスを正しく指定したことを思い出しても、動作しませんでした。

「libboost_date_time.a」にリンクするには、「lib」と「.a」なしで「boost_date_time」を指定する必要があることをご存知ですか?私の場合は問題を解決しました。/usr/local/libは、いずれの場合もAFAIRのパス上にある必要があります。

19
Ralf

静的ライブラリまたはアーカイブは、オブジェクトファイルのコレクションにすぎません。

その他のオブジェクトとしてアーカイブをC/C++ビルド->設定-> C++リンカー->その他の下に追加します:

enter image description here

一部の人々は、完全なパス名を指定することに血まみれの殺人を叫びます。私はそれが実際に(時々理論とは異なり)動作することを発見し、そしてpathfilenameを壊して-L-lでそれらを指定することよりも悪いことではありません。そして、私はそれが実際に機能することを言及しました...

15
jww

C/C++ General->Paths & Symbols構成画面でlibsを追加するときに、同様の問題が発生しました。

代わりに、C/C++ Build -> settingsの下のGCC C++ Linker / Libraries画面で、ライブラリなしでライブラリ名と.aをライブラリに追加し(-l)、ライブラリ検索パス(-L)にパスを追加しました。これは私の問題を解決しました

7