Tho*_*lik 5 c++ dll linker visual-studio-2008 visual-c++
我正在链接到 VS2008 中的一些库。如果我对链接器的了解是正确的,MTd 用于静态链接,MDd 用于动态链接(到 DLL)。我的目标是静态链接一些库并动态链接其他库。项目选项似乎对链接器输入中的所有库只有一种设置。我该怎么做?
设置后,您的项目将获得一个合理的 C 运行时库默认值,具体取决于您如何回答“新建项目向导”提示。您可以检查并更改它(如果需要),如下所示:
可以根据需要链接其他库,只需在“链接器”、“输入”、“附加依赖项”下指定要链接的库即可。
即使您链接到 DLL,它仍然会有一个 .LIB 文件(DLL 的正确形式)来解析外部引用,除非您手动加载 DLL 并发现所需的函数入口点。
您确实需要确保链接的 LIB 文件使用与应用程序相同的 CRT,否则可能会出现意外错误。
不,你把它搞混了。/MD 与 /MT 选项仅与您链接的 CRT 版本相关。有两个静态版本 (/MT),仅当您的项目中不使用任何 DLL 时才应使用。还有 DLL 版本,进程中的每个二进制文件都可以共享该版本,这样您就不会遇到堆分配的痛苦。当内存被一个模块分配并被另一个模块释放时,你会陷入一种痛苦。
选择自己的库完全取决于您。混合和匹配很好,链接器只是获得另一种 .lib。导入库而不是静态库。使用 DLL 时请记住使用 /MD。
| 归档时间: |
|
| 查看次数: |
16472 次 |
| 最近记录: |