SuにアクセスできないLinuxボックスにライブラリをインストールする場所が必要です。 〜/ local [/ bin、/ lib、/ include]を使用していますが、。/ configureでライブラリを探すように指示する方法がわかりません(特に、libgifが必要なemacsをコンパイルしようとしています、これは私のディストリビューションにはありません)。
追加してみました
export PATH=$PATH:~/local/bin
export LD_LIBRARY_PATH=~/local/lib
export C_INCLUDE_PATH=~/local/include
export CPLUS_INCLUDE_PATH=~/local/include
.bashrcに移動しますが、機能していないようです。
Config.siteファイルが必要です。試してください:
$ mkdir -p〜/ local/share $ cat << EOF>〜/ local/share/config.site CPPFLAGS = -I $ HOME/local/include LDFLAGS = -L $ HOME/local/lib ... EOF
--prefix = $ HOME/localを使用してautoconfで生成された構成スクリプトを呼び出すと、config.siteが読み取られ、すべての割り当てが自動的に行われます。 CPPFLAGSとLDFLAGSが必要なすべてである必要がありますが、他の必要な割り当ても行うことができます(したがって、上記のサンプルで...)。 -Iはコンパイラではなくプリプロセッサ用であるため、-IフラグはCFLAGSではなくCPPFLAGSに属していることに注意してください。
Makeを実行するときにLDFLAGSとCFLAGSを設定します。
$ LDFLAGS="-L/home/me/local/lib" CFLAGS="-I/home/me/local/include" make
これを何億回もやりたくない場合は、これらを.bashrc(または同等のシェル)にエクスポートしてください。また、LD_LIBRARY_PATHに/ home/me/local/libが含まれるように設定します。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/me/local/lib
これを正しく行うにはしばらく時間がかかりました。 ARMターゲット用にUbuntuでクロスコンパイルすると、この問題が発生しました。私はそれを解決しました:
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib ./autogen.sh --build=`config.guess` --Host=armv5tejl-unknown-linux-gnueabihf
CFLAGSはautogen.sh/configureでは使用されず、使用すると「configure:error:C compiler cannot create create」というエラーが表示されます。ビルド環境では、autogen.shスクリプトを使用していました。autogen.shスクリプトがない場合は、上記のコマンドの./autogen.shを./configureに置き換えてください。ターゲットシステムでconfig.guessを実行して、-Hostパラメーターを取得しました。
Autogen.sh/configureを正常に実行した後、次を使用してコンパイルします。
PATH=$PATH:/ccpath/bin CC=ccname-gcc AR=ccname-ar LD=ccname-ld CPPFLAGS="-nostdinc -I/ccrootfs/usr/include ..." LDFLAGS=-L/ccrootfs/usr/lib CFLAGS="-march=... -mcpu=... etc." make
使用することを選択したCFLAGSは、「-march = armv5te -fno-tree-vectorize -mthumb-interwork -mcpu = arm926ej-s」です。すべてのインクルードディレクトリを正しく設定するには、しばらく時間がかかります。一部のインクルードがクロスコンパイラを指し、一部のインクルードがルートファイルシステムインクルードを指していると、競合が発生する可能性があります。
これは完璧な答えではないと確信しています。そして、Makefilesで/ ccrootfsではなく/を指しているincludeディレクトリがまだいくつか見られます。これを修正する方法を知りたいです。これが誰かを助けることを願っています。