g77 problem with -lstdc++

Kevin J. Cummings cummings at kjchome.homeip.net
Sun Apr 27 19:57:25 UTC 2008


Paul Smith wrote:
> On Sun, Apr 27, 2008 at 8:38 PM, Kevin J. Cummings
> <cummings at kjchome.homeip.net> > > <cummings at kjchome.homeip.net> > > >
>> <cummings at kjchome.homeip.net> >
>>>> I am experiencing the following
>>>>
>>>>>>> problem with g77
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>> $ g77 -O4 -lstdc++ cwrapper.o toyprob.o algencanma.o
>> algencan.o -o
>>>>>>>>>
>>>>>>>>>
>>>>>>>> algencanma
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> /usr/bin/ld: cannot find -lstdc++
>>>>>>>>> collect2: ld returned 1 exit status
>>>>>>>>> $
>>>>>>>>>
>>>>>>>>> Any ideas?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>  If you installed a compat g77 package, you may also need to
>> install
>>>> a
>>>>
>>>>>>>> compat runtime library as well, but you would have thought that
>>>>>>>>
>>>> would be
>>>>
>>>>>> a
>>>>>>
>>>>>>
>>>>>>>> part of the package dependencies.  do you have any of:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> libstdc++-4.1.2-33
>>>>>>>>> compat-libstdc++-296-2.96-139
>>>>>>>>> compat-libstdc++-33-3.2.3-62
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>  installed?  These are installed on my F8 server.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> Thanks, Kevin. I have
>>>>>>>
>>>>>>> # rpm -q libstdc++
>>>>>>> libstdc++-4.1.2-33
>>>>>>> #
>>>>>>>
>>>>>>> but
>>>>>>>
>>>>>>> # yum install compat-libstdc++
>>>>>>> Plugin "gpgcheck" uses deprecated constant TYPE_INTERFACE.
>>>>>>> Please use TYPE_INTERACTIVE instead.
>>>>>>> Loading "gpgcheck" plugin
>>>>>>> Setting up Install Process
>>>>>>> Parsing package install arguments
>>>>>>> No package compat-libstdc++ available.
>>>>>>> Nothing to do
>>>>>>> #
>>>>>>>
>>>>>>> Any further ideas?
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>  Sorry, that package names are:
>>>>>>
>>>>>>  compat-libstdc++-296
>>>>>>  compat-libstdc++-33
>>>>>>
>>>>>>  The rest of the names were version numbers.  Try:
>>>>>>
>>>>>>       yum install compat-libstdc++-33
>>>>>>
>>>>>>  or
>>>>>>
>>>>>>       yum install compat-libstdc++-296
>>>>>>
>>>>>>  which one you need depends on which library g77 is generating code
>>>>>>
>>>> for....
>>>>
>>>>> Thanks again, Kevin. Now with
>>>>>
>>>>> $ rpm -q compat-libstdc++-296
>>>>> compat-libstdc++-296-2.96-139
>>>>> $ rpm -q compat-libstdc++-33
>>>>> compat-libstdc++-33-3.2.3-62
>>>>> $ rpm -q libstdc++
>>>>> libstdc++-4.1.2-33
>>>>> $
>>>>>
>>>>> The reported problem persists:
>>>>>
>>>>> $ g77 -O4 -lstdc++ cwrapper.o toyprob.o algencanma.o algencan.o -o
>>>>>
>>>> algencanma
>>>>
>>>>> /usr/bin/ld: cannot find -lstdc++
>>>>> collect2: ld returned 1 exit status
>>>>> $
>>>>>
>>>>> Any further ideas?
>>>>>
>>>>>
>>>>  The error returned by ld indicates that it wants to load the library
>> file
>>>> for stdc++.  It should be contained within your standard library search
>>>> path.  Do you have libstdc++-devel installed?  It contains the library
>>>> archive files that ld needs to load (sorry about the mis-direction
>> earlier).
>>>> It should contain:
>>>>
>>>>
>>>>
>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/libstdc++.a
>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/libstdc++.so
>>>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/libsupc++.a
>>>>>
>>>>>
>>>>  I think these are the files ld needs to find.
>>>>
>>> Yes, I do have libstdc++-devel installed. And furthermore,
>>>
>>> # locate libstdc++.a
>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/libstdc++.a
>>> # locate libstdc++.so
>>> /opt/Adobe/Reader8/Reader/intellinux/lib/libstdc++.so.6
>>> /opt/Adobe/Reader8/Reader/intellinux/lib/libstdc++.so.6.0.7
>>> /opt/google/desktop/lib/libstdc++.so.6
>>> /usr/lib/libstdc++.so.5
>>> /usr/lib/libstdc++.so.5.0.7
>>> /usr/lib/libstdc++.so.6
>>> /usr/lib/libstdc++.so.6.0.8
>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/libstdc++.so
>>> /usr/lib/vmware/lib/libstdc++.so.5
>>> /usr/lib/vmware/lib/libstdc++.so.5/libstdc++.so.5
>>> # locate libsupc++.a
>>> /usr/lib/gcc/i386-redhat-linux/4.1.2/libsupc++.a
>>> #
>>>
>>> Paul
>>>
>>>
>>  Grumble, let me go and play for a bit and see if I can figure it out.
>>  I'll install g77 here and see if I can compile/load a couple of small
>> programs.   Back in a few....
> 
> Thanks a lot, Kevin!

I wrote a quick and dirty f77 program:

	INTEGER I
	I = 5
	STOP
	END

and compiled it.  It runs with the default libraries:

	f77 -c foo.f -o foo.o
	f77 foo.o -o foo
	./foo

but if I try and load it with -lstdc++:

	f77 foo.o -lstdc++ -o foo

I get:

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

so, I agree with you.  Are you using anything from the stdc++ library? 
Can you remove it from your link command?

> Paul
> 


-- 
Kevin J. Cummings
kjchome at rcn.com
cummings at kjchome.homeip.net
cummings at kjc386.framingham.ma.us
Registered Linux User #1232 (http://counter.li.org)




More information about the users mailing list