gpt4 book ai didi

c++ - 针对不同操作系统编译C++静态库的建议?

转载 作者:太空狗 更新时间:2023-10-29 12:40:12 29 4
gpt4 key购买 nike

假设我使用 CentOS 7 和 GCC 7 编译一个静态库(我们称之为 mylib.a),我想在 CentOS 6(使用旧系统库)上使用它(编译)。

最好的方法是什么?静态链接到 libstdc++ 等?还有什么?

目前,当我构建(在 CentOS 6 上使用 gcc 4.x)针对我的静态库 mylib.a 的可执行文件时,我得到了类似的东西:

/opt/boost/boost/date_time/gregorian/gregorian_io.hpp:62: undefined reference to `operator delete(void*, unsigned long)'
mylib.a([myFile].o): In function `std::locale::locale<boost::date_time::date_facet<boost::gregorian::date, char, std::ostreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&, boost::date_time::date_facet<boost::gregorian::date, char, std::ostreambuf_iterator<char, std::char_traits<char> > >*)':
/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/locale_classes.tcc:47: undefined reference to `operator delete(void*, unsigned long)'

我怀疑这是因为 boost_date_time.a 不是针对 libstdc++.a 构建的,而它是在没有最新开发工具的 CentOS 7 上使用 gcc 4.x 构建的。

思想?

谢谢!

最佳答案

建立在最古老的受支持系统上——这样它通常可以在 Linux 上运行。较新版本的 gcc 和 libstdc++ 通常与旧版本兼容。

关于c++ - 针对不同操作系统编译C++静态库的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47938141/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com