Знатокам Linux
#!/bin/sh
#installed packages in prefix
#
# egcs-1.0.3a-14.i386.rpm
# egcs-c++-1.0.3a-14.i386.rpm
# glibc-2.0.7-29.i386.rpm
# glibc-devel-2.0.7-29.i386.rpm
# binutils-2.9.1.0.15-1.i386.rpm
PREFIX=/home/user/tmp_dir
PATH=$PREFIX/bin:$PREFIX/usr/bin:$PREFIX/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29
LD_LIBRARY_PATH=$PREFIX/usr/lib
./usr/bin/g++ -nostdinc -nostdinc++ aaa.cc -c -o aaa.o -I ./usr/include\
-I ./usr/include/g++ \
-I ./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/include
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/ld -o aaa \
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/crtbegin.o \
./aaa.o \
./usr/lib/crt1.o \
./usr/lib/crti.o \
./usr/lib/crtn.o \
./usr/lib/libstdc++.a \
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/libgcc.a \
./usr/lib/libc.a \
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/crtend.o
Если же нужно динамически прилинковать, тогда почему libc линкуются статически. Нужно бы сделать так.
#!/bin/sh
#installed packages in prefix
#
# egcs-1.0.3a-14.i386.rpm
# egcs-c++-1.0.3a-14.i386.rpm
# glibc-2.0.7-29.i386.rpm
# glibc-devel-2.0.7-29.i386.rpm
# binutils-2.9.1.0.15-1.i386.rpm
PREFIX=/home/user/tmp_dir
PATH=$PREFIX/bin:$PREFIX/usr/bin:$PREFIX/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29
LD_LIBRARY_PATH=$PREFIX/usr/lib
./usr/bin/g++ -nostdinc -nostdinc++ aaa.cc -c -o aaa.o -I ./usr/include\
-I ./usr/include/g++ \
-I ./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/include
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/ld -o aaa \
-rpath $PREFIX/lib \
-m elf_i386 -dynamic-linker $PREFIX/lib/ld-linux.so.2 \
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/crtbegin.o \
./usr/lib/crt1.o \
./usr/lib/crti.o \
./usr/lib/crtn.o \
./aaa.o \
./usr/lib/libstdc++.so \
./lib/libc.so.6 \
./usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/crtend.o
Я уже разобрался, но все равно спасибо.
Оставить комментарий
aleks777
Возникла следующая проблема:Из дистрибутива RH5.2 были взяты
egcs-2.90.29 980515
И файлы
libstdc++.a
libstdc++.so.2.8.0
libc.a
libc.so
libm.so
ld-linux.so.2
crtbegin.o
crtn.o
crti.o
crtend.o
Что это может означать?
Что дает ошибку в библиотеке?