【发布时间】:2015-04-03 10:53:12
【问题描述】:
我从我的一个 C++ 项目中创建了一个静态库 A,我可以在另一个项目 X 中使用它。
但是,我的静态库 A 中的一些函数调用静态库 B(DevIL 图像加载库)中的其他函数。因此,为了编译我的项目 X,我在链接器中包含了 A 和 B,它编译得很好。
问题是我的程序只有在我调用库 A 中的函数时才会出现分段错误,而这些函数又会调用库 B。
有没有办法解决这个问题?我是否应该将库 A 和 B 合并到一个库中(不存在影响此的许可问题)?如果这有所作为,我正在使用 Visual Studio 2013。
【问题讨论】:
-
使用 debug-info 构建应用程序和库,然后在调试器中运行以捕获崩溃。
-
我已经通过调试器。我没有依赖库B的来源,但是错误发生在B分配内存的函数中。
-
你是怎么调用那个函数的?您确定问题不在您的代码中(在您如何调用函数、您传递的参数等方面)?
-
不,因为如果我将 A 编译为可执行文件而不是库,并且 A 在 B 中调用相同的函数,它可以正常工作。
-
有几种可能的pb:这与回调函数有关吗?当一个库管理另一个库分配的内存时会发生这种情况吗?您必须为我们提供更多信息才能提供帮助...
标签: c++ linker static-libraries