共享库核心转储

时间:2016-12-07 22:45:00

标签: c++ linux g++ shared-libraries

为了便于讨论,我将使用单字母标识符来描述这种情况。

我有一个静态库“A”,它正在共享库“B”中使用,它正在应用程序“C”中使用。

如果我在主服务器上构建所有三个,则测试应用程序运行时没有错误。但是,如果我将“B”复制到另一台计算机并在该计算机上构建“C”,我会在执行时获得核心转储。我和其他两台具有相同结果的计算机一起试过这个。但是,如果我在其中一台计算机上构建“A”和“B”,那么我可以在任何计算机上构建并执行“C”而不会出错(这包括最初用于构建“A”和“A”的服务器) B“)。

我通常怀疑操作系统中存在某种不兼容性或g ++中的版本不匹配。但是,我已经检查了所有涉及的机器上的版本是相同的。

操作系统版本为:4.4.0-31-通用#50-Ubuntu x86_64 GNU / Linux g ++版本是:g ++(Ubuntu 5.4.0-6ubuntu1~16.04.1)5.4.0 20160609

我还用ldd检查了“B”的依赖关系,无论在哪里构建“B”,它们都是相同的。

我可能会因此而导致完全失败。建议非常感谢!

0 个答案:

没有答案