【发布时间】:2010-12-29 21:23:37
【问题描述】:
在每个平台上都有给定库的不同版本:多线程、调试、动态等。
如果我在这里错了,请纠正我,但在 Linux 中,一个对象可以链接到任何版本的库,不管它是如何编译的。例如,不需要在编译时使用任何特殊标志来指定链接最终将指向运行时库的动态版本还是静态版本(澄清:我不是在谈论创建 em> 动态/静态库,我说的是链接到它们 - 所以-fPIC 不适用)。调试或优化版本的库也是如此。
为什么在 MSVC 中(Windows 通常与其他编译器一起使用。真的吗?)我每次都需要重新编译代码才能链接到不同版本的库?我说的是 /MD、/MT、/MTd、/MDd 等标志。代码实际上是否每次都使用不同的系统标头。如果有,为什么?
对于 C/C++ 程序员在 Windows 中讨论这些库问题的可靠文档,我真的很感激。
谢谢!
【问题讨论】:
-
Linux 需要按库名称链接 - MS 提供 /Mx 开关是为了方便。
-
所以这仅仅是为了方便自动库名称解析?
标签: visual-c++