我如何强迫Visual Studio使用我想要的依赖性库名称
How can I force Visual Studio to use dependency library names I want it to?
我已经在Visual Studio(2013)中创建了一个静态C 库,称为" mylib.lib"。它是多线程(/mt),我在图书馆员/常规下指定"输出文件"为" $(OUTDIR)$(targetName)$(targetExt)",所以我可以在没有" MT" Visual Studio想要的情况下命名仅仅因为我使用了'/mt'而强制到文件名的末尾。
该项目还链接在其他几个依赖项中,因此它们都在一个巨大的" mylib.lib"文件中,用于使用应用程序。这些其他图书馆是" A.lib"," B.Lib"answers" C.Lib"。他们还构建了指定输出名称,以免在文件名的末尾具有" MT"。
现在,我想在C 应用程序中消耗" mylib.lib",该应用程序也使用'/mt'来构建。该应用程序与该库链接,并在其中调用一个功能。该应用程序无法链接,因为它"无法打开文件'amt.lib'lnk1104"。
该应用程序对" a.lib"没有直接依赖性,并且该依赖关系已包含在" mylib.lib"中,它不会尝试将其链接为" mylibmt.lib"。看似任意的决定在一种情况下应用" MT"后缀而不是另一种情况令人困惑。
在这里,Visual Studio内部发生了什么?我有没有办法告诉它不要将" MT"附加到某些库上?
实现此目的的一种方法是在消费应用程序中设置"无默认库",然后在链接器部分中手动添加所有"附加"依赖关系。这需要一路跟踪依赖树,但确实可以。
这样做的更简单的方法是将所需的库添加到链接器|输入下的"忽略特定默认库"字段中。例如,我在该字段中添加了" amt.lib"," bmt.lib"answers" cmt.lib" - 然后将" a.lib"," b.lib"answers" c.lib"添加到"其他依赖关系"字段(也在链接器下|输入)。
- 如何设置一个范围来提取我想要获得的信息
- 链接列表运算符重载没有打印出我想要的内容
- 莱克斯没有返回我想要的东西
- 而不是那么多的 if 语句,我想要一个逻辑,我可以用一个语句或优化的方式来完成
- 我想要一个具有子函数的函数访问相同的命名函数,而不使用它取决于其子类的类
- 如何让m_refcount变量打印出我想要的值而不是垃圾
- 我想要一个改变数组快速排序的2个数字的函数
- 输出不是我想要C++的
- 使用运算符覆盖排序没有得到我想要的
- C ++,否则文本程序不会进入我想要的途径
- 如何声明一个未知大小的数组,然后输入直到我想要,然后获取数组的大小
- 我如何使用 juce 的文件过滤器描述我想要的文件过滤器?
- 如何设置此视觉工作室 (2015) 自定义生成步骤(工具?基本上,我想要一个修改头文件(c ++)的预处理器步骤
- 代码不会发送我想要的权衡
- 无法在openGL和GLUT中为我想要的确切对象设置动画
- 我如何强迫Visual Studio使用我想要的依赖性库名称
- 我的 OpenGL QQuickItem 没有我想要的大小
- 我可以/应该在 #ifndef 后输入任何我想要的东西
- C++ microshell,输入一个命令并使用fork(),dup(),pipe()将其通过管道传输到进程。只是我没有得到我想要的结果
- 矢量在C++中,我的代码可以工作,但不是我想要的那样