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不影响otherliband someotherlib,它仅适用于mylib

于 2012-10-21T17:06:18.043 回答