[opensuse] Directory becomes executable file - openSUSE 13.1
I'm trying to compile a gogoc client, something I have done successfully a few times before. However, this time I get an error: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lstdc++ After searching with Google, it appears the required file is libstdc++.so, which is located in /usr/lib64. According to the error, as far as I can tell, it's not looking in the appropriate directory. I started tracing the links: /usr/x86_64-suse-linux/bin/ld to /usr/bin/ld to /etc/alternatives/ld to /usr/bin/ld.bfd which appears to be an executable file How did we manage to get from what's supposed to be a directory at /usr/x86_64-suse-linux/bin/ld to an executable at /usr/bin/ld.bfd??? There is also /usr/bin/ld, but it too is a file. WTF??? -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
Forgot to mention, if anyone wants to try compiling it, the package can be found here: https://drive.google.com/?utm_source=en&utm_medium=button&utm_campaign=web&utm_content=gotodrive&urp=http%3A%2F%2Fwww.google.com%2Fdrive%2Fabout.html%3Fusp%3Dad_search%26gclid%3DCIn8x9XysrsCFe3m7AodcXoAYw#folders/0B5LapMwk8iPrOE04eVhKZG1DVzQ And here are some instructions: Required packages gcc make openssl libcrypto libpthread libopenssl-devel In gogoc-1_2-RELEASE/gogoc-messaging/gogocmessaging/message.h Add #include <stddef.h> above the include of pal.h On 08/31/2014 04:15 PM, James Knott wrote:
I'm trying to compile a gogoc client, something I have done successfully a few times before. However, this time I get an error: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lstdc++
After searching with Google, it appears the required file is libstdc++.so, which is located in /usr/lib64. According to the error, as far as I can tell, it's not looking in the appropriate directory. I started tracing the links: /usr/x86_64-suse-linux/bin/ld to /usr/bin/ld to /etc/alternatives/ld to /usr/bin/ld.bfd which appears to be an executable file
How did we manage to get from what's supposed to be a directory at /usr/x86_64-suse-linux/bin/ld to an executable at /usr/bin/ld.bfd??? There is also /usr/bin/ld, but it too is a file.
WTF???
-- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 08/31/2014 04:24 PM, James Knott wrote:
Forgot to mention, if anyone wants to try compiling it, the package can be found here: https://drive.google.com/?utm_source=en&utm_medium=button&utm_campaign=web&utm_content=gotodrive&urp=http%3A%2F%2Fwww.google.com%2Fdrive%2Fabout.html%3Fusp%3Dad_search%26gclid%3DCIn8x9XysrsCFe3m7AodcXoAYw#folders/0B5LapMwk8iPrOE04eVhKZG1DVzQ
I have also uploaded the RPM I mentioned in an earlier message. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
* James Knott <james.knott@rogers.com> [2014-08-31 15:16]:
I'm trying to compile a gogoc client, something I have done successfully a few times before. However, this time I get an error: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lstdc++
After searching with Google, it appears the required file is libstdc++.so, which is located in /usr/lib64. According to the error, as far as I can tell, it's not looking in the appropriate directory. I started tracing the links: /usr/x86_64-suse-linux/bin/ld to /usr/bin/ld to /etc/alternatives/ld to /usr/bin/ld.bfd which appears to be an executable file
How did we manage to get from what's supposed to be a directory at /usr/x86_64-suse-linux/bin/ld to an executable at /usr/bin/ld.bfd??? There is also /usr/bin/ld, but it too is a file.
WTF???
If I understand your question correctly, the path above is to the "ld" program, which is the object code linker program (cf: ld(1)). The error report above does not specify the search path used by the linker for the object libs. Currently on my 13.1 x86_64 system, the libstdc++ objects are located here (I have both 32-bit and 64-bit libs installed): $ locate libstdc++ /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.18 /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.a /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.so $ rpm -qf /usr/lib/libstdc++.so.6.0.18 libstdc++6-32bit-4.8.1_20130909-3.2.1.x86_64 $ rpm -qf /usr/lib64/libstdc++.so.6.0.18 libstdc++6-4.8.1_20130909-3.2.1.x86_64 Maybe you have to adjust the Library path to be searched (e.g., via the "-L" arg)? It's been a while for me, so I may be off. Or maybe you need to install one of the above RPMs. HTH, --Phil -- Philip Amadeo Saeli openSUSE, CentOS, RHEL psaeli@zorodyne.com -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
On 08/31/2014 06:17 PM, Philip Amadeo Saeli wrote:
I'm trying to compile a gogoc client, something I have done successfully a few times before. However, this time I get an error: /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lstdc++
After searching with Google, it appears the required file is libstdc++.so, which is located in /usr/lib64. According to the error, as far as I can tell, it's not looking in the appropriate directory. I started tracing the links: /usr/x86_64-suse-linux/bin/ld to /usr/bin/ld to /etc/alternatives/ld to /usr/bin/ld.bfd which appears to be an executable file
How did we manage to get from what's supposed to be a directory at /usr/x86_64-suse-linux/bin/ld to an executable at /usr/bin/ld.bfd??? There is also /usr/bin/ld, but it too is a file.
WTF??? If I understand your question correctly, the path above is to the "ld"
* James Knott <james.knott@rogers.com> [2014-08-31 15:16]: program, which is the object code linker program (cf: ld(1)).
The error report above does not specify the search path used by the linker for the object libs. Currently on my 13.1 x86_64 system, the libstdc++ objects are located here (I have both 32-bit and 64-bit libs installed):
$ locate libstdc++ /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.0.18 /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.a /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.so
$ rpm -qf /usr/lib/libstdc++.so.6.0.18 libstdc++6-32bit-4.8.1_20130909-3.2.1.x86_64
$ rpm -qf /usr/lib64/libstdc++.so.6.0.18 libstdc++6-4.8.1_20130909-3.2.1.x86_64
Maybe you have to adjust the Library path to be searched (e.g., via the "-L" arg)? It's been a while for me, so I may be off. Or maybe you need to install one of the above RPMs.
HTH,
--Phil
# rpm -qf /usr/lib/libstdc++.so.6.0.18 libstdc++6-32bit-4.8.1_20130909-3.2.1.x86_64 # rpm -qf /usr/lib64/libstdc++.so.6.0.18 libstdc++6-4.8.1_20130909-3.2.1.x86_64 I have: /usr/lib/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6.0.18 but not in that 4.8 directory and I can't seem to find that libstdc++.a anywhere. It's also not on my main system, but is on my notebook computer in /usr/lib64/gcc/x86_64-suse-linux/4.8. That directory appears to have 4 more files than the system I'm working on and also my main system. I wonder why the difference, given they were all installed from the same 13.1 ISO file? I just checked on the notebook to see what RPM is came from. It came from libstdc++48-devel, which does not appear to be installed on the system I'm working on. That did it. After installing libstdc++48-devel, I can now compile that package. The big question is why it was on only one system of three, given that it includes files and libraries that are mandatory for development Thanks for your help. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse+owner@opensuse.org
participants (2)
-
James Knott
-
Philip Amadeo Saeli