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: [email protected]
ReportedBy: [email protected]
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.