当我在构建可执行文件时将<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
要求,是否会出现错误这个库(就像上面那个)?
答案 0 :(得分: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
。< / p>
请注意,可以请求静态构建特定的依赖库,而不会影响其他依赖库,如下所示:
exe e : /libs//mylib/<link>static /libs//otherlib /libs//someotherlib
上述<link>static
不会影响otherlib
和someotherlib
,它仅适用于mylib
。