1

JamfileのBoostライブラリに対してリンクしようとしています:

import os ;
path-constant BOOST_ROOT : [ os.environ BOOST_ROOT ] ;
use-project /boost : $(BOOST_ROOT) ;

exe hello :
            hello.cpp
            /boost//filesystem
            /boost//system
          :
            <link>static
          ;

コンソール出力からライブラリがコンパイルされていることがわかりますが、リンカはエラーを出力します。

msvc.link bin\msvc-10.0\debug\link-static\hello.exe
LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-gd-1_46.lib'

エラーが報告されるのはなぜですか?Jamfileのレベルからライブラリにリンクしているのに、ライブラリがリンクされるべきときにリンクされないのはなぜですか?私の理解では、ビルドプロセス全体がJamfilesによって制御されている場合、ライブラリは自動的に静的にリンクされ、コンパイラ固有のフラグは追加されません(Jamfilesの移植性が低下するため)。助けてください。

4

1 に答える 1

2

ブーストの自動リンク機能に問題がある可能性があります。定義することで無効にできます(ターゲットの要件にBOOST_ALL_NO_LIB追加するだけで十分だと思います)。<define>BOOST_ALL_NO_LIBhello

于 2012-09-30T21:10:34.310 に答える