在Visual Studio 2017的Linux项目中使用静态库

时间:2018-03-16 17:34:34

标签: c++ visual-studio

我在VS 2017社区版中有一个Linux项目。该项目包含一个动态.so文件。 这到目前为止工作。我现在想要将此库静态链接为.a文件。如何在项目设置中实现此目的? 我一无所获。对于g ++, -static -Bstatic 应位于命令行的 -llibname 前面。 在 Linker->下的项目设置中所有选项 - >其他选项我有“ - (B)static -llibname ”。 但它不起作用, - (B)静态不在生成的命令行中。有谁知道它是如何工作的?

1 个答案:

答案 0 :(得分:3)

您需要将库构建为静态库然后只需像动态库那样指定库名称(不带lib前缀或.a扩展名)。

静态库只是所有目标文件(ar命令)的归档。如果您正在使用MSBuild项目,请在项目属性/常规/项目默认值中将静态库指定为配置类型。

GCC将首先在lib路径上搜索动态库(.so),然后在静态库(.a)中搜索。如果您同时拥有并希望强制进行静态链接,则会提供一些非常有用的信息here