nixp.ru v3.0

17 октября 2017,
вторник,
06:47:20 MSK

DevOps с компанией «Флант»
anonymous написал 26 января 2004 года в 13:19 (497 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

ПРОБЛЕМА: после установки slackware 9.1 не могу скомпилировать ни одну прогу.

ПОСЛЕДСТВИЯ:

echo 'main() {printf"Hello World!\n»);} | gcc -

ld error.

пишет что не найдена crt1.so в директории /usr/lib/gcc-lib/i386-slackware-linux/3.2.2/…

echo '#include main() {printf"Hello World!\n»);} | gcc -

выводит тучу сообщений, первое из которых

в файле stdio.h 1 3 не найден файл features.h и т.д.

также много ругается на макросы _THROW_ и т.д.

При установке ставил пакеты только из <a>, , и</a>

<a>ВОПРОС: Что может быть не так? В чем проблема?</a>

<a>заранее благодарен.</a>

Negative

А как же папочка l ???

Куда же Вы без либ? :))

anonymous
Negative
А как же папочка l ???

Куда же Вы без либ? :))

а почему при компиляции ругается?

decvar

попробуй без выкрутасов..просто:

vi file.c

int main(){

printf(’asd’);

return 0;

}

gcc file.c

./a.out

вывод в студию….

Negative

ну вообще я смутно представляю, как система будет жить без glibc например

anonymous
Negative
ну вообще я смутно представляю, как система будет жить без glibc например

Видишь ли, в Слаке glibc разбита на два пакета, glibc-solibs (shared libraries), которая в группе «a», и собственно, glibc, которая в группе «l», и автором этого обсуждения не установлена. Первый, как легко догадаться, необходим для работы уже скомпилированных программ, динамически линкованных с glibc, а второй необходим для компиляции сырцов написаннных на C. Так что, у athilson’а все происходит верно. Скомпилированные проги бегают, а новые не компилятся. Надо ставить glibc из группы «l».

Good Luck,

UT

anonymous

Ребята!

У меня тут две проблемы. Проблема с библиотеками вторична по сравнению с проблемой компилирования.

Седующая программа НЕ КОМПИЛИРУЕТСЯ:

#include

main()

{

printf(«HELLO»);

return 0;

}

Как уже говорил, ругается на файл stdio.h, который лежит не в /usr/include, как мне казалось он должен лежать, а где-то в /usr/lib/gcc-lib/i386-slackware-linux/3.2.2/…

Если #include убрать, то с компиляцией все ок, а с линкованием беда, но с этим уже все понятно, видимо, я действительно не установил библиотеки. С этим разберусь.

А вот что с компилятором делать, не знаю.

Искренне надеюсь на помощь.

Заранее благодарен

athilson.

anonymous

Какой ты, батенька, упрямый… :-) Ладно, смотрим описание

ftp://carroll.cac.psu.edu/pub/linux/distributions/slackware/slackware-9.1/slackware/l/glibc-2.3.2-i486-1.txt

обращаем внимание на слова «and header files». Теперь читаем

less /usr/include/stdio.h

обращаем внимание на

# include

# include

Теперь качаем

ftp://carroll.cac.psu.edu/pub/linux/distributions/slackware/slackware-9.1/slackware/l/glibc-2.3.2-i486-1.tgz

и делаем

$tar -tzvf glibc-2.3.2-i486-1.tgz | grep features.h

-rw-r--r-- root/root 10723 2003-05-18 19:28:41 usr/include/features.h

Опаньки! Еще раз:

$tar -tzvf glibc-2.3.2-i486-1.tgz | grep /bits/types.h

-rw-r--r-- root/root 7275 2003-05-18 19:29:59 usr/include/bits/types.h

Какая отсюда мораль? Надо ставить glibc-2.3.2-i486-1.tgz из группы «l» как говорит Дядя Федор, а не упрятимься. И вcе будет! :-)

Good Luck,

UT

anonymous

Спасибо, все работает. Поставил библиотеки из раздела.