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