相关疑难解决方法(0)

静态或动态链接CRT,MFC,ATL等

回到90年代,当我第一次开始使用MFC时,我曾经动态链接我的应用程序并发送了相关的MFC DLL.这引起了我一些问题(DLL地狱!)而我改为静态链接 - 不仅仅是为了MFC,而是为了CRT和ATL.除了更大的EXE文件之外,静态链接从来没有给我带来任何问题 - 那么其他人是否有任何缺点?有没有充分的理由重新访问动态链接?我的应用程序现在主要是STL/Boost FWIW.

c++ linker mfc

20
推荐指数
2
解决办法
1万
查看次数

我应该静态还是动态地链接到Visual Studio C运行时?

我已经阅读了双方关于是否应该在Visual Studio项目中静态或动态地链接到C运行时库的参数,并且我仍然不完全确定要考虑什么.

我的项目引入了一些第三方库(Python,HDF5,Trilinos和Microsoft MPI),每个库都必须使用与我的最终可执行文件相同的运行时库构建(否则它们不能链接在一起).静态链接时,每个库都将包含C运行时的副本.我读到这很容易引起问题,因为最终的可执行文件将包含运行时的多个副本,其中没有一个可以相互交互.但是,如果相同的符号被多重定义,链接器是否会抱怨?

我想避免"DLL Hell",但我担心在运行时的多个副本中静态链接可能会产生的阴险错误.我读错了吗?

此外,我正在使用Visual Studio 2005,我读到Service Pack 1运行时不向后兼容.这是否意味着没有SP1构建的应用程序将无法在具有SP1 dll的计算机上运行,​​即使它们具有相同的名称(例如msvcr80.dll)?

crt msvcrt

19
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

crt ×1

linker ×1

mfc ×1

msvcrt ×1