This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ Link Error


On Mon, 14 Apr 2003, Parker, Ron wrote:

> I am experiencing a link error with C++ on Cygwin.  I have boiled it
> down to a simple test case.  As far as I know I have every Cygwin
> package installed. But I have been upgrading this installation for quite
> some time.
>
> If I take a simple test.cpp file:
>
> =================================
> #include <iostream>
>
> using std::cout;
>
> main()
> {
>         cout << "Test\n";
>         return 0;
> }
> =================================
>
> And run g++, g++ (GCC) 3.2 20020927 (prerelease), against it.  I get the
> following:
>
> $ g++ -o test test.cpp -lstdc++
> /e/DOCUME~1/rdparker/LOCALS~1/Temp/ccWlq6qX.o(.text+0x27):test.cpp:
> undefined reference to `_STL::cout'
> /e/DOCUME~1/rdparker/LOCALS~1/Temp/ccWlq6qX.o(.text+0x5d):test.cpp:
> undefined reference to `_STL::ios_base::_Loc_init::_Loc_init[in-charge]()'
> /e/DOCUME~1/rdparker/LOCALS~1/Temp/ccWlq6qX.o(.text+0x78):test.cpp:
> undefined reference to `_STL::ios_base::Init::Init[in-charge]()'
> /e/DOCUME~1/rdparker/LOCALS~1/Temp/ccWlq6qX.o(.text+0x93):test.cpp:
> undefined reference to `_STL::ios_base::Init::~Init [in-charge]()'
> /e/DOCUME~1/rdparker/LOCALS~1/Temp/ccWlq6qX.o(.text+0xae):test.cpp:
> undefined reference to `_STL::ios_base::_Loc_init::~_Loc_init [in-charge]()'
> /e/DOCUME~1/rdparker/LOCALS~1/Temp/ccWlq6qX.o(.text$_ZN4_STL8ios_base23_M_ch
> eck_exception_maskEv+0x1d):test.cpp: undefined reference to
> `_STL::ios_base::_M_throw_failure()'
> collect2: ld returned 1 exit status
>
> Having '-lstdc++' on the end or not doesn't seem to matter.

Ron,

I can't reproduce it here (Win2k, g++ 3.2 20020927 prerelease).
What does adding a "-v" flag to your link line show?
What about "g++ -print-search-dirs" and "g++ -print-file-name=libstdc++.a"?
"g++ -print-libgcc-file-name"?

Minor points:
- -lstdc++ is implied and thus redundant
- don't name your program "test", as it conflicts with /bin/test
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha at cs dot nyu dot edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor at watson dot ibm dot com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Knowledge is an unending adventure at the edge of uncertainty.
  -- Leto II


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]