ubuntuusers.de

/usr/bin/ld: cannot find -lstdc++

Status: Gelöst | Ubuntu-Version: Kubuntu 11.10 (Oneiric Ocelot)
Antworten |

realzippy

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

Moin!

Stehe gerade auf dem Schlauch. Möchte kleine Bibliothek "kompilieren" :
https://github.com/amonakov/primus.
Verwende:

1
LIBDIR=lib/x86_64-linux-gnu make && CXX=g++\ -m32 LIBDIR=lib/i386-linux-gnu make

Der 1. Teil baut alles korrekt, der 2., also:

1
CXX=g++\ -m32 LIBDIR=lib/i386-linux-gnu make

beschwert sich mit:

me@mine:~/pprimus/primus$ CXX=g++\ -m32 LIBDIR=lib/i386-linux-gnu make
mkdir -p lib/i386-linux-gnu
g++ -m32 -Wall -g -DBUMBLEBEE_SOCKET='"/var/run/bumblebee.socket"' -DPRIMUS_DISPLAY='":8"' -DPRIMUS_LOAD_GLOBAL='"/usr/$LIB/libglapi.so.0"' -DPRIMUS_libGLa='"/usr/$LIB/nvidia-bumblebee/libGL.so.1"' -DPRIMUS_libGLd='"/usr/$LIB/libGL.so.1"' -fvisibility=hidden -fPIC -shared -Wl,-Bsymbolic -o lib/i386-linux-gnu/libGL.so.1 libglfork.cpp -lX11 -lpthread -lrt
libglfork.cpp:840:2: warning: #warning Enabled workarounds for applications demanding more than promised by the OpenGL ABI [-Wcpp]
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6.1/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [lib/i386-linux-gnu/libGL.so.1] Error 1

? Denn:

1
me@mine:~/pprimus/primus$ locate libstdc++

sagt mir u.a.:

/home/me/.phoronix-test-suite/installed-tests/pts/quake4-1.1.0/bin/Linux/x86/libstdc++.so.6
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.16
/usr/lib/ure/lib/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16
/usr/lib32/libstdc++.so.5
/usr/lib32/libstdc++.so.5.0.7
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.16

Danke für Eure Zeit

zippy

mickydoutza

Avatar von mickydoutza

Anmeldungsdatum:
31. Dezember 2010

Beiträge: 2185

realzippy schrieb:

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
make: *** [lib/i386-linux-gnu/libGL.so.1] Error 1

Im Makefile den Pfad zur libstdc++ bekannt geben:

...
LDFLAGS=-L/usr/lib64

$(LIBDIR)/libGL.so.1: libglfork.cpp
	mkdir -p $(LIBDIR)
	$(CXX) $(CXXFLAGS) -fvisibility=hidden -fPIC -shared -Wl,-Bsymbolic -o $@ $< -lX11 -lpthread -lrt $(LDFLAGS)
.../amonakov-primus-915b4dd> make
mkdir -p lib
g++ -v -Wall -g -s -DBUMBLEBEE_SOCKET='"/var/run/bumblebee.socket"' -DPRIMUS_DISPLAY='":8"' -DPRIMUS_LOAD_GLOBAL='"/usr/$LIB/libglapi.so.0"' -DPRIMUS_libGLa='"/usr/$LIB/nvidia-bumblebee/libGL.so.1"' -DPRIMUS_libGLd='"/usr/$LIB/libGL.so.1"' -fvisibility=hidden -fPIC -shared -Wl,-Bsymbolic -o lib/libGL.so.1 libglfork.cpp -lX11 -lpthread -lrt -L/usr/lib64
Es werden eingebaute Spezifikationen verwendet.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.5/lto-wrapper
Ziel: x86_64-suse-linux
Konfiguriert mit: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --program-suffix=-4.5 --enable-linux-futex --without-system-libunwind --enable-gold --with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux
Thread-Modell: posix
gcc-Version 4.5.3 20110428 [gcc-4_5-branch revision 173117] (SUSE Linux) 
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g' '-s' '-DBUMBLEBEE_SOCKET="/var/run/bumblebee.socket"' '-DPRIMUS_DISPLAY=":8"' '-DPRIMUS_LOAD_GLOBAL="/usr/$LIB/libglapi.so.0"' '-DPRIMUS_libGLa="/usr/$LIB/nvidia-bumblebee/libGL.so.1"' '-DPRIMUS_libGLd="/usr/$LIB/libGL.so.1"' '-fvisibility=hidden' '-fPIC' '-shared' '-o' 'lib/libGL.so.1' '-L/usr/lib64' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib64/gcc/x86_64-suse-linux/4.5/cc1plus -quiet -v -D_GNU_SOURCE -DBUMBLEBEE_SOCKET="/var/run/bumblebee.socket" -DPRIMUS_DISPLAY=":8" -DPRIMUS_LOAD_GLOBAL="/usr/$LIB/libglapi.so.0" -DPRIMUS_libGLa="/usr/$LIB/nvidia-bumblebee/libGL.so.1" -DPRIMUS_libGLd="/usr/$LIB/libGL.so.1" libglfork.cpp -quiet -dumpbase libglfork.cpp -mtune=generic -march=x86-64 -auxbase libglfork -g -Wall -version -fvisibility=hidden -fPIC -o /tmp/cc87NQ8S.s
GNU C++ (SUSE Linux) Version 4.5.3 20110428 [gcc-4_5-branch revision 173117] (x86_64-suse-linux)
        kompiliert von GNU-C-Version 4.5.3 20110428 [gcc-4_5-branch revision 173117], GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
Warnung: MPC-Header-Version 0.8.2 unterscheidet sich von Bibliotheksversion 0.8.1.
GGC-Heuristik: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
#include "..." - Suche beginnt hier:
#include <...> - Suche beginnt hier:
 /usr/include/c++/4.5
 /usr/include/c++/4.5/x86_64-suse-linux
 /usr/include/c++/4.5/backward
 /usr/local/include
 /usr/lib64/gcc/x86_64-suse-linux/4.5/include
 /usr/lib64/gcc/x86_64-suse-linux/4.5/include-fixed
 /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/include
 /usr/include
Ende der Suchliste.
GNU C++ (SUSE Linux) Version 4.5.3 20110428 [gcc-4_5-branch revision 173117] (x86_64-suse-linux)
        kompiliert von GNU-C-Version 4.5.3 20110428 [gcc-4_5-branch revision 173117], GMP version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2
Warnung: MPC-Header-Version 0.8.2 unterscheidet sich von Bibliotheksversion 0.8.1.
GGC-Heuristik: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 263dd9c20498c16fcdcf2508379de930
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g' '-s' '-DBUMBLEBEE_SOCKET="/var/run/bumblebee.socket"' '-DPRIMUS_DISPLAY=":8"' '-DPRIMUS_LOAD_GLOBAL="/usr/$LIB/libglapi.so.0"' '-DPRIMUS_libGLa="/usr/$LIB/nvidia-bumblebee/libGL.so.1"' '-DPRIMUS_libGLd="/usr/$LIB/libGL.so.1"' '-fvisibility=hidden' '-fPIC' '-shared' '-o' 'lib/libGL.so.1' '-L/usr/lib64' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/as -V -Qy --64 -o /tmp/ccM2KOKj.o /tmp/cc87NQ8S.s
GNU assembler version 2.20.0 (x86_64-suse-linux) using BFD version (GNU Binutils; openSUSE 11.3) 2.20.0.20100122-6
COMPILER_PATH=/usr/lib64/gcc/x86_64-suse-linux/4.5/:/usr/lib64/gcc/x86_64-suse-linux/4.5/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/4.5/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/bin/
LIBRARY_PATH=/usr/lib64/gcc/x86_64-suse-linux/4.5/:/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/lib/:/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-Wall' '-g' '-s' '-DBUMBLEBEE_SOCKET="/var/run/bumblebee.socket"' '-DPRIMUS_DISPLAY=":8"' '-DPRIMUS_LOAD_GLOBAL="/usr/$LIB/libglapi.so.0"' '-DPRIMUS_libGLa="/usr/$LIB/nvidia-bumblebee/libGL.so.1"' '-DPRIMUS_libGLd="/usr/$LIB/libGL.so.1"' '-fvisibility=hidden' '-fPIC' '-shared' '-o' 'lib/libGL.so.1' '-L/usr/lib64' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/lib64/gcc/x86_64-suse-linux/4.5/collect2 --build-id --eh-frame-hdr -m elf_x86_64 -shared -o lib/libGL.so.1 -s /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/crti.o /usr/lib64/gcc/x86_64-suse-linux/4.5/crtbeginS.o -L/usr/lib64 -L/usr/lib64/gcc/x86_64-suse-linux/4.5 -L/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../x86_64-suse-linux/lib -L/usr/lib64/gcc/x86_64-suse-linux/4.5/../../.. -Bsymbolic /tmp/ccM2KOKj.o -lX11 -lpthread -lrt -lstdc++ -lm -lgcc_s -lc -lgcc_s /usr/lib64/gcc/x86_64-suse-linux/4.5/crtendS.o /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/crtn.o
.../amonakov-primus-915b4dd> file lib/libGL.so.1
lib/libGL.so.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
.../amonakov-primus-915b4dd> ldd lib/libGL.so.1
        linux-vdso.so.1 =>  (0x00007fff2c1ff000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f52b386b000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f52b364d000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f52b3444000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f52b313d000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f52b2ee5000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f52b2ccf000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f52b296f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f52b3e29000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f52b2751000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f52b254d000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f52b2349000)

realzippy

(Themenstarter)

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

mickydoutza, ok, das scheint zu klappen. Leider funktioniert die Bibliothek nicht so, wie sie soll, aber das ist wohl eine andere Geschichte. Danke Dir!

Gruß, zippy

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Wenn ich das richtig sehe, willst Du doch eine 32-Bit- Bibliothek auf einem 64-Bit- System erstellen. Richtig ?

Da ist es klar, dass er die systemeigenen Bibliotheken (wg. "incompatible") überspringt. Allerdings musst Du ihm doch nun irgendwo eine passende 32-Bit- Bibliothek verlinken, damit das was wird. Oder sehe ich das falsch ?

LG,

track

realzippy

(Themenstarter)

Anmeldungsdatum:
5. Mai 2009

Beiträge: 3137

So, es geht auch ohne Gebastel am Makefile: g++-multilib installiert, dann baut es ohne Probleme.

Antworten |