Видео смотреть бесплатно

Смотреть 4k видео

Официальный сайт zakonoproekt2010 24/7/365

Смотреть видео бесплатно

11.02.10 12:17 m039

Есть вопрос![SOLVED] Как линкует файлы gcc?


Немножко поясню:

Если создать файл например: "gcc -c hello.c" , а потом воспользоваться командой "ld hello.o", то выскочит ошибка:
ld: warning: cannot find entry symbol _start; defaulting to 08048094

В интернете нарыл вот такую не плохую статью про "хэлло ворлд", там была моя проблема.
Т.е. ответом было прилинковать файлы /usr/lib/crt*.o и всякие libgcc.a, но если убрать флаг "-static" все собирается, но не запускается. Тут у меня возник стопор. А если оставить флаг "-static", то опять возникает стопор, потому что появляется много ошибок из-за того, что не видны множество функций.

Решение: использовать gcc с опцией -v. Конечно, появляется вопрос, что такое collect2, но не относится к данному вопросу.



digiwhite 11.02.10 12:40 # +0
gcc hello.o -o hello

Или я не совсем понял, о чем речь*
predator 11.02.10 12:48 # +1
вопрос в том какие флаги передает gcc линкеру или ассемблеру
berkus 12.02.10 16:22 # +0
Всякие разные. Gcc это только драйвер. Посмотреть все флаги можно в спек файле gcc: gcc -dumpspecs.

Но вообще нужно только передать имя библиотеки libc и стартовых файлов crt*.o
f_evgeny 11.02.10 13:11 # +0
В порядке бреда.
А если по рабоче-крестьянски, молотком?
В смысле какой-нибудь strace попробовать подключить и посмотреть, что там GCC делает?
m039 11.02.10 14:19 # +0
Спасибо за наводку (strace), не думал, что такая информативная команда.
digiwhite 11.02.10 14:28 # +0
Вы статью, на которую сами же ссылку дали до конца дочитали?
m039 11.02.10 14:39 # +0
Да, только где про strace пролистал.))
Потому что мне была интересна только линковка и создание программы.
К тому же когда использовал strace на gcc, думал будут дебри, оказалось очень даже ничего.
evgenyl 11.02.10 13:21 # +-1
gcc hello.c
сделает a.out который и нужно запускать, все не парь себе мозг
если нужно подключить библиотеку -I и путь
digiwhite 11.02.10 13:24 # +0
Вообще-то -L и -l. -I - это где искать заголовочные файлы.
evgenyl 11.02.10 13:27 # +-1
угу к библиотекам, а сами so должны быть в /usr/lib /usr/local/lib
digiwhite 11.02.10 13:30 # +0
А причем здесь динамически загружаемые библиотеки?
evgenyl 11.02.10 13:31 # +0
человек смотрит hello world значить учится писать на C, пробует чтото компилировать, я ему попытался сказать что ему делать для старта а там уже сам пусть читает
digiwhite 11.02.10 13:28 # +0
Вечером прогляжу статью внимательно. Там что-то жосткое написано :)

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 89)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 1839 из 142 городов)
            Топ пользователей Топ блогов
            В сети: dementiy

            Новенькие: nya_lvv, Bailee, mrak018, comrad.awsum, goutm
            welinux.ru

            Смотреть видео онлайн

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн