Squeeze/Lenny 编译:库链接错误

Squeeze/Lenny 编译:库链接错误

我在这里遇到一个问题:我有一个 C++ 库(“DataTsBroad”)和一个 C++ 测试应用程序(“DataTsBroadTest”)来测试它。
实际上,Lib 和 Test 应用程序都是用 Debian Lenny 编译的。

现在,我想继续在 Debian Lenny(客户限制)上编译我的测试应用程序,但我会在 Squeeze 或 Wheezy 上编译我的库,以便在最新的 Debian 版本上工作。

因此,我在 Squeeze 上成功编译了我的 Lib,但是,之后,当我尝试在 Lenny 上使用此 Lib 编译我的测试应用程序时,它失败了!有一个链接错误:

链接 CXX 可执行文件 DataTsBroadTest /home/nis/pezierg/test/ProductMak/Export/DataTsBroad/L64/Release/libDataTsBroad64.so: 对“std::ctype::_M_widen_init() const@GLIBCXX_3.4.11”的未定义引用
collect2: ld 返回 1 退出状态
make[2]: *** [DataTsBroadTest] 错误 1
​​make[1]: *** [CMakeFiles/DataTsBroadTest.dir/all] 错误 2
make:*[全部] 错误2

问题肯定是由于奥斯特里姆C++ Lib,我尝试在我的 Lib 中评论它的所有用途,并且它有效。

但我怎样才能真正解决这个问题呢?

答案1

问题似乎来自于使用不同版本的 Glibc:您在 Squeeze 上编译了库,在 Lenny 上编译了应用程序(使用来自 Squeeze 的库)。

看一下输出:

ldd /home/nis/pezierg/test/ProductMak/Export/DataTsBroad/L64/Release/libDataTsBroad64.so

相关内容