相关疑难解决方法(0)

我应该静态还是动态地链接到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 ++程序?

我正在使用Code :: Blocks IDE(v13.12)和GNU GCC编译器.

  1. 我想链接器为我的程序链接所需的运行时库的静态版本,我该怎么做?
  2. 我已经知道我的可执行文件大小会增加,请您告诉我其他缺点吗?
  3. 在Visual C++ Express中执行此操作怎么样?

c++ linker static-libraries static-linking

7
推荐指数
1
解决办法
3万
查看次数

VS2010报告DLL中静态类的错误内存泄漏

从Visual Studio DLL调用ITK时内存泄漏的后续问题

我把问题提炼到最简单的例子.

struct A
  {
  public:
    A()
      {
      mp_data = new int(0x42);
      }
    ~A()
      {
      delete mp_data;
      }
    int* mp_data;
  };

A a;
Run Code Online (Sandbox Code Playgroud)

在DLL中定义此类全局类时,Visual Studio调试CRT报告在应用程序关闭时泄漏mp_data.除了禁用泄漏报告外,有没有人知道解决方法?

c++ memory-leaks visual-studio-2010

6
推荐指数
1
解决办法
4088
查看次数