这就是情况。
我有一个库项目 A,它使用和操作其他第三方库,我们称它们为 T1 和 T2。
然而,当我在我的任何其他项目中使用这个库 A 时,它提示它无法打开第三方库 T1 和 T2,即使它不直接使用它们。当然,它通过库 A 间接使用它们,因为 A 做了适当的工作来链接和包含该库等。
我真的需要将这些其他库添加到使用库 A 的项目中,还是有一种方法可以说连接库,以便库 A 的用户只需要担心那个库而不是它的构成。
编辑:
Edit2:
感谢您到目前为止的答案。让我澄清一下我的情况。
我在 VS2015 中有一个 .lib 项目,我们称之为 MathLib。这个 MathLib 在内部使用一个 boost 库来进行计算,我们称这个库为 BoostMath。属性文件都设置为包含和使用此 BoostMath,这在库项目本身中完美运行。
我现在正在制作另一个使用 MathLib 进行计算的项目用户。它执行适当的包含和所有操作以使用此库。然而,它提示它不知道 BoostMath 库,因此无法使用 MathLib 库。
有人可能会争辩说,为什么不以 MathLib 库所做的相同方式将 BoostMath 包含到项目 User 中,但这并没有捕获重点。我想创建一个我自己的库,它可能会或可能不会在内部使用其他库,但这对我的库的最终用户来说不应该是任何问题。
我可能必须在 VS Librarian 中设置一些东西来实现这一点,将库连接在一起或一些。但我似乎无法弄清楚。有什么想法吗?
Edit3:
我什至在属性文件中找到了与 answer 中提到的完全相同的命令行。
/OUT:"MathLib.lib" "BoostMath.lib" /NOLOGO /LIBPATH:"path\lib"
但是由于某种原因它不起作用。如果我在有和没有 Librian 属性设置的情况下运行它,.lib 二进制文件保持不变。
我基本上想这样做,但它在VS2015中似乎不起作用
+---------------+
| End user exe |
+---------------+
|
| some api call
|
+---------------+
| My MathLib |
+---------------+
|
|
+---------------+------------+----
| | |
+-----+------+ +-----+-----+
| BoostMath | | OtherMath |
+------------+ +-----------+
最佳答案
我不确定您如何将库链接到项目......但它不应该提示编译器无法打开库 T1 和 T2,除非您已将它们包含在编译器设置中。
通常如果你没有这个库,它会报告找不到函数示例 T1_xxxx(该函数在 T1 中定义)。我建议您检查项目的编译器设置
关于c++ - 如何在 VS2015 中将外部库依赖项链接到一个静态库文件中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37074915/