- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
情况是这样的。
我有一个库项目 A,它使用和操作其他第三方库,我们称它们为 T1 和 T2。
然而,当我在我的任何其他项目中使用这个库 A 时,它会提示它无法打开第三方库 T1 和 T2,即使它没有直接使用它们。当然,它通过库 A 间接使用它们,因为 A 做了适当的工作来链接和包含该库等。
我是否真的需要将这些其他库添加到使用库 A 的项目中,或者是否有一种方法可以让库 A 的用户连接起来,这样库 A 的用户只需要担心那个库而不用担心它是由什么构成的.
编辑:
Found some related questions but the answers do not quite solve the issue;
编辑2:
感谢您到目前为止的回答。让我澄清一下我的情况。
我在 VS2015 中有一个 .lib 项目,我们称之为 MathLib。这个 MathLib 在内部使用了一个 boost 库来进行计算,我们称这个库为 BoostMath。属性文件都设置为包含和使用此 BoostMath,这在库项目本身中完美运行。
我现在正在制作另一个使用 MathLib 进行计算的项目 User。它做了适当的包含和所有使用这个库。然而,它提示说它不知道 BoostMath 库,因此无法使用 MathLib 库。
有人可能会争辩说,为什么不像 MathLib 库那样将 BoostMath 包含到项目 User 中,但这没有捕获要点。我想创建一个我自己的库,它可能会或可能不会在内部使用其他库,但这对我的库的最终用户来说应该没有任何关系。
我可能必须在 VS Librarian 中设置一些东西才能实现这一点,将库连接在一起或一些。但我似乎无法弄清楚。有什么想法吗?
编辑 3:我什至在属性文件中发现了与此 answer 中提到的完全相同的命令行.
/OUT:"MathLib.lib" "BoostMath.lib" /NOLOGO /LIBPATH:"path\lib"
但是由于某些原因它不起作用。如果我在有和没有 Librian 属性设置的情况下运行它,.lib 二进制文件都保持不变。
Appearantly this functionality is broken since VS2010? According to this answer. Usefull other question. Edit4:
我基本上想这样做,但它在 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/
我是一名优秀的程序员,十分优秀!