Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Логика линковщика, Не могу понять  (Прочитано 2068 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн aleman

  • Автор темы
  • Активист
  • *
  • Сообщений: 436
    • Просмотр профиля
Логика линковщика, Не могу понять
« : 30 Октябрь 2007, 19:50:43 »
Написал Привет мир на "С"

#include <stdio.h>

int main(void)
{
printf ("Hello World\n");
return 0;
}



Скомпилировал "gcc hw.c"
Смотрим на использумые библиотеки "ldd a.out"
Увидел:
libc.so.6 => /lib/libc.so.6 (0x00002b09231ff000)
/lib64/ld-linux-x86-64.so.2 (0x00002b0922dd1000)

Вот и озадачиваюсь вопросом. Кто говорит линковщику, где это у него настроено, что именно libc библиотеку нужно эту брать libc.so.6

Оффлайн aleman

  • Автор темы
  • Активист
  • *
  • Сообщений: 436
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #1 : 31 Октябрь 2007, 23:26:40 »
люди аууу

Оффлайн e1vin

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #2 : 01 Ноябрь 2007, 02:05:36 »
Что-то мне подсказывает, что именно в libc содержится код стандартной сишной библиотеки, которую ты и используешь, подключая заголовочный файл stdio.h и используя его функции. Полагаю, что Америку не открыл, но все же.

Вообще, насколько я понимаю, расположение бинарных файлов динамических библиотек стандартизировано. Но более глубинными познаниями, увы, не обладаю, поэтому ждем ответа вдвоем. Мне тоже интересно :)

Оффлайн fen

  • Любитель
  • *
  • Сообщений: 86
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #3 : 01 Ноябрь 2007, 11:13:41 »
e1vin прав
libc есть стандартной библиотекой с.

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #4 : 01 Ноябрь 2007, 16:29:54 »
Изучение
man ld
man gcc
а также info на эти команды должно прояснить ситуацию :coolsmiley:

Оффлайн aleman

  • Автор темы
  • Активист
  • *
  • Сообщений: 436
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #5 : 01 Ноябрь 2007, 23:21:45 »
МИНил ИНФил.. максимум до чего дошел это отключить дефульные библы.. но как тогда вручную поцепить свои чтоб ошибок не было?

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #6 : 01 Ноябрь 2007, 23:33:42 »
Какие свои? Каких ошибок?

Как вариант - переопределять пути, по которым линкер пытается искать библиотеки, и линковать статически.

Ты бы написал чего делаешь и чего добиться хочешь.

Оффлайн aleman

  • Автор темы
  • Активист
  • *
  • Сообщений: 436
    • Просмотр профиля
Re: Логика линковщика, Не могу понять
« Ответ #7 : 02 Ноябрь 2007, 14:41:24 »
если коротко, мне нужно увидеть при ldd вот так
libc.so => /lib/libc.so (0x00002b09231ff000)
/lib64/ld-linux-x86-64.so.2 (0x00002b0922dd1000)

 

Страница сгенерирована за 0.054 секунд. Запросов: 25.