2

<link>static実行可能ファイルをビルドするときに機能を要件セクションに渡すと、正確にはどういう意味ですか?

exe main
       : main.cpp
         /libs//my_library
       : <library>/boost//thread
         <link>static
       ;

これは、 と の両方を静的リンケージで構築する必要があることを意味し/libs//my_libraryますか<library>/boost//thread ?

ターゲット/libs//my_library<link>static要件セットがある (この機能のみでビルドされている) 場合、<link>staticこのライブラリに依存するすべてのターゲットの要件を省略した場合 (上記のように)、エラーが発生しますか?

4

1 に答える 1

2

<link>static実行可能ファイルをビルドするときに機能を要件セクションに渡すと、正確にはどういう意味ですか?

これは、依存ライブラリを静的に構築 (およびリンク) することを意味します。

exe main
       : main.cpp
         /libs//my_library
       : <library>/boost//thread
         <link>static
       ;

これは、 と の両方を静的リンケージで構築する必要があることを意味し/libs//my_libraryます<library>/boost//thread か?

はい。

ターゲット/libs//my_library<link>static要件セットがある (この機能のみでビルドされている) 場合、<link>staticこのライブラリに依存するすべてのターゲットの要件を省略した場合 (上記のように)、エラーが発生しますか?

いいえ、大丈夫です。ライブラリに<link>static要件がある場合、それは何があっても静的にビルドされ<link>static、このライブラリだけのために依存ターゲットに含める必要はありません。

次のように、他の依存ライブラリに影響を与えることなく、特定の依存ライブラリを静的にビルドするように要求できることに注意してください。

exe e : /libs//mylib/<link>static /libs//otherlib /libs//someotherlib

上記は と に<link>staticは影響せずotherlibsomeotherlibのみに関係しmylibます。

于 2012-10-21T17:06:18.043 に答える