Squeeze/Lenny 编译:库链接错误

Squeeze/Lenny 编译:库链接错误

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

现在,我想继续在 Debian Lenny(客户约束)上编译我的测试应用程序,但我会在 Squeeze 或 Wheezy 上编译我的库以在最新的 Debian 版本上运行。

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

链接 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:*** [all] 错误 2

问题肯定是由于C++ Lib,我尝试在我的 Lib 中注释其所有用途,并且它有效。

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

答案1

我认为问题可能是 Lenny 和 Squeeze 上的 gcc/g++ 版本不同。尝试使它们相等,升级其中一个或降级另一个,然后重试。

相关内容