2015-04-03 128 views
-1

我创建了一个静态库,A,从我的C++项目之一,我可以在其他项目中使用,X.当静态库段错误调用另一个静态库

但是,从我的静态库,A部分功能,在静态库B(DevIL图像加载库)中调用其他函数。因此,为了编译我的项目X,我在链接器中包含了A和B,它编译得很好。

的问题是我的程序只有一个分段错误,当我打电话从库中的函数这反过来调用库B.

有什么方法来解决这个问题?我应该将图书馆A和B合并成一个图书馆吗(没有影响这个的许可问题)?如果这有所作为,我正在使用Visual Studio 2013。

+0

使用debug-info构建应用程序和库,然后在调试器中运行以捕获崩溃。 – 2015-04-03 10:58:57

+0

我已经加入了调试器。我没有相关库的源B,但是错误发生在B分配内存的函数中。 – user929404 2015-04-03 11:03:28

+0

你是怎么调用这个函数的?你确定这个问题不在你的代码中吗(在你如何调用函数,你传递的参数等)? – 2015-04-03 11:06:54

回答

0

我遇到了以正确顺序链接库的问题。检查一下。

+0

你能解释一下你的答案吗? – user929404 2015-04-03 11:07:11

+0

您链接CMake中的.a文件的顺序非常重要。 – 2015-04-03 11:34:07

+0

但是op使用msvc,并且它没有问题:如果会有冲突btw符号链接器会投诉 – Christophe 2015-04-03 12:08:54

相关问题