在一个非常古老的代码库中,我们有一些可视化C++项目设置的构建设置,这些设置令人困惑,似乎没有必要。
我们的C++项目是用visual构建的(目前正在使用vs 2010),在链接器选项中有一些为“忽略特定库”链接器设置指定的库。其中一些库是: msvcirt.lib和msvcrtd.lib。
,所以对于这个问题,我不知道为什么忽略这些特定的库是必要的?
我最好的猜测是:也许这是必要的,在早期的视觉工作室?因为一些奇怪的原因,只有放进去的人才知道。
默认情况下,使用VS 2010来生成一个C/C++项目(即.vcxproj),这些库不会被专门忽略。因此,我99%肯定这个链接设置是不必要的,99%的时间。在这件事上有人同意我吗?
当我使用dependency检查我构建的任何旧DLL时,我可以看到,如果我在ADVAPI32.dll中链接,它就是对msvcrt.dll的依赖。但这真的不关我的事.
发布于 2011-11-16 13:35:07
在某些情况下,当您链接不同编译的多个库时,核心库中会出现冲突。
我遇到了一些问题,在用/clr标志编译C++/CLI时必须使用它。
有几个例子:
发布于 2013-06-11 09:23:21
情况更糟了。您必须忽略的库取决于您实际使用的库。(如果不这样做,您可能会遇到堆损坏等大麻烦。)
因此,考虑到项目的特点(MultiThreaded,SingleThreaded,.)您必须使用特定的运行时库。查看这里以获得要使用的运行时库的概述。
考虑到您正在使用的运行时库,您必须忽略其他库。查看这里以获得要忽略的库的概述。
https://stackoverflow.com/questions/8152315
复制相似问题