我正在链接到VS2008中的一些库。如果我对链接器的了解是正确的,那么MTd用于静态链接,MDd用于动态链接(到DLL)。我的目标是静态链接一些库和动态链接其他库。项目选项似乎只对链接器输入中的所有库有一个设置。我该怎么做?
答案 0 :(得分:4)
根据您回答“新建项目向导”提示的方式,在设置项目后,您的项目将获得合理的C运行时库默认值。您可以按如下方式检查和更改(如果需要):
可以根据需要链接其他库,只需指定要链接到链接器,输入,附加依赖项下的库。
即使您链接到DLL,它仍然会有一个.LIB文件(DLL的正确格式)来解析外部引用,除非您手动加载DLL并发现所需的函数入口点。
您确实需要确保您链接的LIB文件使用与您的应用相同的CRT,否则可能会出现意外错误。
答案 1 :(得分:4)
选择自己的库完全取决于您。混合和匹配很好,链接器只是获得另一种.lib。导入库而不是静态库。请记住在使用DLL时使用/ MD。
答案 2 :(得分:0)
您描述的链接器选项仅适用于CRT。静态版本将限制您在模块之间共享内存的方式。
您使用的所有其他库都将根据您提供(或不提供)链接器的.lib文件进行链接。
有三种使用MS库的方法