0

C++ で非標準ライブラリを追加して、makefile で -I オプションを使用してリンクしなくても標準ライブラリのように追加できるようにするにはどうすればよいですか?

この問題は、複数のサーバー上で異なる絶対パス ディレクトリを使用してコードを開発しているために発生します。私は Eigen C++ ライブラリを使用しており、メイクファイル "-I /usr/local/include/eigen/ -c norm.cpp constants.cpp" で次のコマンドを呼び出している間に動作させることができます。サーバーを転送すると問題が発生します。絶対パスは同じではなく、コンパイルするたびに変更する必要があります。絶対パスを指定できることはわかっていますが、このライブラリを頻繁に使用するため、奇妙な相対パス名を作成したくありません。

私は gcc を使用しており、固有フォルダーを /usr/include/c++/4.5、/usr/include/c++/4.5.2、および /usr/local/include/ に配置しようとしましたが、それでも機能しません。現在、Ubuntu 11.04 を使用しています。

gcc が検索する標準ライブラリを見つける方法と、非標準ライブラリを追加して「#include」のように含める方法を教えてください。

4

2 に答える 2

3

デフォルトでは、GCC は次のディレクトリを検索します。

/usr/local/include/
/usr/include/

次のシェル変数を編集することで、gcc 検索パスを制御できます。

$ C_INCLUDE_PATH=/the/new/include/path 
$ export C_INCLUDE_PATH

C++ の場合:

$ CPLUS_INCLUDE_PATH=/the/path/to/search 
$ export CPLUS_INCLUDE_PATH

ライブラリ パスについても同じことができます。

$ LIBRARY_PATH=/the/path/whatever
$ export LIBRARY_PATH

それがあなたに答えを与えることを願っています。:)

于 2013-01-21T17:09:18.783 に答える
0

ranliblibtoolを見てください。

于 2013-01-28T03:11:20.180 に答える