[Bug 203465] g++ does not compile the program using the boost-libs

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Oct 1 09:38:36 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203465

            Bug ID: 203465
           Summary: g++ does not compile the program using the boost-libs
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: gerald at FreeBSD.org
          Reporter: safonov.paul at gmail.com
          Assignee: gerald at FreeBSD.org
             Flags: maintainer-feedback?(gerald at FreeBSD.org)

Created attachment 161587
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=161587&action=edit
Full errors

After the upgrade FreeBSD9 to FreeBSD10 stopped compile g++ my program using
the boost-libs.


uname -a:
FreeBSD localhost 10.2-STABLE FreeBSD 10.2-STABLE #0: Thu Oct  1 15:16:11 KRAT
2015     root at localhost:/usr/obj/usr/src-10/sys/KERNEL  amd64


Installed ports:
lang/gcc48
devel/boost-libs


cat t.cpp:
#include <iostream>

#include <boost/program_options.hpp>

#define SVCNAME     "SVCNAME"

using namespace std;
namespace po = boost::program_options;

int
main (int argc, char *argv[])
{
    std::string     svc_name;
    po::options_description desc ("Allowed options");

    desc.add_options()
        ("help,h", "produce help message")
        ("name,n",
            po::value<std::string> (&svc_name)->default_value(SVCNAME),
            "service name")
        ;
    try {
        po::variables_map vm;

        po::store (po::parse_command_line (argc, argv, desc), vm);
        po::notify (vm);
        if (vm.count ("help") || vm.count ("h")) {
            std::cout << desc << std::endl;
            return 1;
        }
    }
    catch (std::exception &e) {
        std::cout << desc << std::endl;
        return 1;
    }

    return 0;
}


Сompile with clang++ without errors:
export CXX=clang++
$CXX -I/usr/local/include -o t t.cpp /usr/local/lib/libboost_program_options.a


When compiling using g++, get a lot of errors:
export CXX=g++48
$CXX -I/usr/local/include -o t t.cpp /usr/local/lib/libboost_program_options.a
/tmp//ccE0v9k9.o: In function `main':
t.cpp:(.text+0x92): undefined reference to
`boost::program_options::options_description::options_description(std::string
const&, unsigned int, unsigned int)'
t.cpp:(.text+0x307): undefined reference to
`boost::program_options::operator<<(std::ostream&,
boost::program_options::options_description const&)'
t.cpp:(.text+0x4ba): undefined reference to
`boost::program_options::operator<<(std::ostream&,
boost::program_options::options_description const&)'
/tmp//ccE0v9k9.o: In function
`boost::program_options::basic_command_line_parser<char>::basic_command_line_parser(int,
char const* const*)':
t.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcEC2EiPKPKc[_ZN5boost15program_options25basic_command_line_parserIcEC5EiPKPKc]+0x76):
undefined reference to
`boost::program_options::detail::cmdline::cmdline(std::vector<std::string,
std::allocator<std::string> > const&)'
/tmp//ccE0v9k9.o: In function
`boost::program_options::basic_command_line_parser<char>::extra_parser(boost::function1<std::pair<std::string,
std::string>, std::string const&>)':
t.cpp:(.text._ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_9function1ISt4pairISsSsERKSsEE[_ZN5boost15program_options25basic_command_line_parserIcE12extra_parserENS_9function1ISt4pairISsSsERKSsEE]+0x33):
undefined reference to
`boost::program_options::detail::cmdline::set_additional_parser(boost::function1<std::pair<std::string,
std::string>, std::string const&>)'
/tmp//ccE0v9k9.o: In function `std::vector<std::string,
std::allocator<std::string> >
boost::program_options::to_internal<std::string>(std::vector<std::string,
std::allocator<std::string> > const&)':
t.cpp:(.text._ZN5boost15program_options11to_internalISsEESt6vectorISsSaISsEERKS2_IT_SaIS5_EE[_ZN5boost15program_options11to_internalISsEESt6vectorISsSaISsEERKS2_IT_SaIS5_EE]+0x46):
undefined reference to `boost::program_options::to_internal(std::string
const&)'
...
...
...
/usr/local/lib/libboost_program_options.a(utf8_codecvt_facet.o): In function
`boost::program_options::detail::utf8_codecvt_facet::~utf8_codecvt_facet()':
libs/program_options/src/utf8_codecvt_facet.cpp:(.text._ZN5boost15program_options6detail18utf8_codecvt_facetD0Ev[_ZN5boost15program_options6detail18utf8_codecvt_facetD0Ev]+0xb):
undefined reference to `std::__1::codecvt<wchar_t, char,
__mbstate_t>::~codecvt()'
/usr/local/lib/libboost_program_options.a(utf8_codecvt_facet.o):(.rodata+0x30):
undefined reference to `std::__1::codecvt<wchar_t, char,
__mbstate_t>::~codecvt()'
/usr/local/lib/libboost_program_options.a(utf8_codecvt_facet.o):(.rodata+0x40):
undefined reference to `std::__1::locale::facet::__on_zero_shared()'
/usr/local/lib/libboost_program_options.a(utf8_codecvt_facet.o):(.rodata+0x70):
undefined reference to `std::__1::codecvt<wchar_t, char,
__mbstate_t>::do_length(__mbstate_t&, char const*, char const*, unsigned long)
const'
/usr/local/lib/libboost_program_options.a(utf8_codecvt_facet.o):(.rodata+0xe0):
undefined reference to `typeinfo for std::__1::codecvt<wchar_t, char,
__mbstate_t>'
collect2: error: ld returned 1 exit status

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list