3

SCons を使用して、標準以外の場所にインストールした一連の依存関係を必要とするプログラムをコンパイルしようとしています。

依存関係を /home/dja/ocr にインストールしました。現在、メイン プログラムをコンパイルしようとしていますが、SCons にライブラリとヘッダーを探す場所を伝える方法がわかりません。

私は(とりわけ)試しました:

scons prefix=/home/dja/ocr

scons includepath=/home/dja/ocr/include libpath=/home/dja/ocr/lib

env LIBPATH=/home/dja/ocr/lib INCLUDEPATH=/home/dja/ocr/include scons

...etc...

結果は常に同じです。

scons: Reading SConscript files ...  
Currently supported OS version: Ubuntu 10.04  
Checking for C++ library iulib... no  
AssertionError: :  
  File "/home/dja/ocr/src/ocropus/SConstruct", line 107:  
    assert conf.CheckLibWithHeader("iulib","iulib/iulib.h","C++");  

Googleで答えを見つけることができませんでした。

これを機能させるための正しい SCons foo は何ですか?

4

5 に答える 5

5

環境を作成し、適切な変数を設定する必要があります。

env = Environment(
          CPPPATH=['/home/dja/ocr/include'],
          LIBPATH=['/home/dja/ocr/lib'],
          LIBS=['iulib'])
env.Program('my_executable', Glob('*.c'))

CPPPATH は、C プリプロセッサ パス (注: 3 つの P) のリストを指します。LIBPATH は、ライブラリが存在する場所を指します。最後に、LIBS はプログラムにリンクするライブラリのリストです。

于 2011-01-19T02:18:52.717 に答える
3

特定の環境変数またはconfigureのオプションに関するmakeおよびその規則とは異なり、SConstruct の作成者は、ユーザーがオーバーライドを指定する方法を提供する必要があります。デフォルトでは、sconsは環境からビルド変数を読み取りません。--with-X

ユーザー構成を処理するにはさまざまな方法がありますが (先ほど学んだ変数を参照してください)、広く受け入れられている規則については知りません。そして、あなたの立場にあるユーザーのために、作成者が作成したドキュメントや適切なscons --help説明に頼るか、自分で SConstruct を読むことに頼る必要があります (不適切に書かれた型にはまらない Makefile を使用する必要がある場合があります)。

ところで、scons に関する私の知識が古くなっている場合は、これを修正していただければ幸いです。

于 2011-01-13T18:21:20.523 に答える
0

SConstruct ファイルを編集することでこれを行うことができるようです: http://osdir.com/ml/programming.tools.scons.user/2005-09/msg00060.html

これはかなり不自由です - より良い一般的な方法はありますか?

(この場合、SConstruct ファイルを読み取ると、依存関係へのパスを具体的に提供するための特別な規定があることが示されたので、差し迫った問題は解決しましたが、一般的な問題は解決しませんでした。)

于 2011-01-13T10:15:01.750 に答える
0

sudo scons --32 --libpath=/home/test/project/stage/lib/ --cpppath=/home/test/project/boost/ --prefix=/home/test/mongClient/output --dbg=on --opt=インストール時

libpath は、標準以外の場所からライブラリをリンクするためのものです。cpppath は、標準以外の場所からヘッダー ファイルを含めるためのものです。

于 2016-08-29T18:18:37.797 に答える
0

LDFLAGS="-L/blah/" を渡すと、環境変数として LINKPATH="-L/blah/" を scons に渡すと機能することがわかりました。

于 2016-06-06T08:42:03.930 に答える