http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55696



             Bug #: 55696

           Summary: Error linking using gfortran with C++ code compiled

                    with -std=c++11

    Classification: Unclassified

           Product: gcc

           Version: 4.7.2

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: fortran

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: kyle.nieme...@gmail.com





Created attachment 28968

  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28968

main.f90 holds Fortran program that calls C++ subroutine in sub.cpp



I'm running into a linker error when mixing Fortran 90 code with C++ code

compiled using "-std=c++11".



The attached code compiles and links fine with:

gfortran -c main.f90

g++ -c sub.cpp

gfortran -o prog main.o sub.o -lstdc++



But, if I compile the C++ code with:

g++ -c sub.cpp -std=c++11



then linking fails with the error:

Undefined symbols for architecture x86_64:

  "std::basic_string<char, std::char_traits<char>, std::allocator<char>

>::basic_string(std::basic_string<char, std::char_traits<char>,

std::allocator<char> >&&)", referenced from:

      __ZN9__gnu_cxx13new_allocatorISsE9constructISsISsEEEvPT_DpOT0_ in sub.o

      __ZSt10_ConstructISsISsEEvPT_DpOT0_ in sub.o

ld: symbol(s) not found for architecture x86_64

collect2: error: ld returned 1 exit status



I'm using gfortran and g++ 4.7.2.

Reply via email to