The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"проблемы компоновки с gcc"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"проблемы компоновки с gcc"
Сообщение от _RomanD_ emailИскать по авторуВ закладки on 24-Июн-03, 02:14  (MSK)
Я написал модулёк, откомпилил его с ключём -с, получил файл .о
Теперь пытаюсь компилить программу, использующую этот модуль.
В тексте проги указал #include "module.h", но gcc ( как и g++ )
просит реализацию функций, описаных в модуле. Как указать gcc,
где брать эти реализации?
Те же самые исходники компилятся под
Windows компилятором Borland C. Только там вместо файла *.о файл
*.obj .
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "проблемы компоновки с gcc"
Сообщение от Olej emailИскать по авторуВ закладки on 24-Июн-03, 12:23  (MSK)
>Я написал модулёк, откомпилил его с ключём -с, получил файл .о
>Теперь пытаюсь компилить программу, использующую этот модуль.
>В тексте проги указал #include "module.h", но gcc ( как и g++
>)
>просит реализацию функций, описаных в модуле. Как указать gcc,
>где брать эти реализации?
>Те же самые исходники компилятся под
>Windows компилятором Borland C. Только там вместо файла *.о файл
>*.obj .

#gcc ... -l<lib> ... x.o -ox
- где lib - библиотека, причём, например, для библиотеки libsocket.x.x... - пишем: -lsocket.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "проблемы компоновки с gcc"
Сообщение от SergeiZz Искать по авторуВ закладки on 24-Июн-03, 12:49  (MSK)
Дело в том, что gcc и компилятор и компоновщик (линкёр) в одном лице.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "проблемы компоновки с gcc"
Сообщение от Olej emailИскать по авторуВ закладки on 24-Июн-03, 17:22  (MSK)
>Дело в том, что gcc и компилятор и компоновщик (линкёр) в одном
>лице.

Я не понял этого уточнения ...
В одном, конечно, но ключ -l - это как-раз к его компоновщику и относится - подключаемые библиотеки.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "проблемы компоновки с gcc"
Сообщение от SergeiZz Искать по авторуВ закладки on 25-Июн-03, 09:37  (MSK)
>>Дело в том, что gcc и компилятор и компоновщик (линкёр) в одном
>>лице.
>
>Я не понял этого уточнения ...
>В одном, конечно, но ключ -l - это как-раз к его компоновщику
>и относится - подключаемые библиотеки.
Начинающие мигранты с Borland обычно толком не помнят, зачем нужен
компоновщик. Это заметно по фразам на подобие "создаю проект, компилирую,
получаю такие файлы". Им нужно тогда сказать, что "в Linux всё это делается
с помощью gcc (во FreeBSD -- bcc), а проект в простых случаях -- это только
Makefile".

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "проблемы компоновки с gcc"
Сообщение от _RomanD_ emailИскать по авторуВ закладки on 25-Июн-03, 02:35  (MSK)
>
>#gcc ... -l<lib> ... x.o -ox
>- где lib - библиотека, причём, например, для библиотеки libsocket.x.x... - пишем:
>-lsocket.
>
Не понял обозначений. Скажем есть модуль module.h, к нему есть module.c и
module.o; есть прога prog.c, которая этот модулёк использует. Все в одной
папке. Как компилить?
  Пробовал :
#gcc prog.c -lmodule.o
#gcc prog.c -l module.o
#gcc prog.c -lmodule
#gcc prog.c -l module


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "проблемы компоновки с gcc"
Сообщение от LS emailИскать по авторуВ закладки on 25-Июн-03, 03:17  (MSK)
>>
>>#gcc ... -l<lib> ... x.o -ox
>>- где lib - библиотека, причём, например, для библиотеки libsocket.x.x... - пишем:
>>-lsocket.
>>
>Не понял обозначений. Скажем есть модуль module.h, к нему есть module.c и
>
>module.o; есть прога prog.c, которая этот модулёк использует. Все в одной
>папке. Как компилить?
>  Пробовал :
>#gcc prog.c -lmodule.o
>#gcc prog.c -l module.o
>#gcc prog.c -lmodule
>#gcc prog.c -l module

а если разобраться, что такое есть *.h, *.c, *.o  и доки про gcc почитать? gcc при компиляции создаст библиотеку  libmodule.o, но никак не module.o. и когда скажешь gcc prog.c -lmodule.o, то на этапе линковки будет использована библиотека libmodule.o


  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "проблемы компоновки с gcc"
Сообщение от SergeiZz Искать по авторуВ закладки on 25-Июн-03, 10:08  (MSK)
>>Не понял обозначений. Скажем есть модуль module.h, к нему есть module.c и
>>
>>module.o; есть прога prog.c, которая этот модулёк использует. Все в одной
>>папке. Как компилить?
bash$ g++ -Wall -c module.c
bash$ g++ -Wall -c prog.c
bash$ g++ -Wall -o prog prog.o module.o
Или в один шаг
bash# g++ -Wall -o prog prog.c module.c
После этого
bash$ ./prog

Где-то к осени у меня будет русский pdf об ООП в Linux (для самых
маленьких). Под названием "Объектно ориентированное программирование на C++ для Linux (руководство к действию)".
Бросьте адресок на zbl@gmail.ru -- вышлю, как только, так сразу.

>а если разобраться, что такое есть *.h, *.c, *.o  и доки
>про gcc почитать?
Красную краску в студию!
Если по англьцки не в зуб ногой, то кыш сюда:
http://lsi.bas-net.by/bsuir/base/node1.html

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "проблемы компоновки с gcc"
Сообщение от LS emailИскать по авторуВ закладки on 27-Июн-03, 21:00  (MSK)
>>>Не понял обозначений. Скажем есть модуль module.h, к нему есть module.c и
>>>
>>>module.o; есть прога prog.c, которая этот модулёк использует. Все в одной
>>>папке. Как компилить?
>bash$ g++ -Wall -c module.c
>bash$ g++ -Wall -c prog.c
>bash$ g++ -Wall -o prog prog.o module.o
>Или в один шаг
>bash# g++ -Wall -o prog prog.c module.c
>После этого
>bash$ ./prog
>

спасибо за уточнение

>Где-то к осени у меня будет русский pdf об ООП в Linux
>(для самых
>маленьких). Под названием "Объектно ориентированное программирование на C++ для Linux (руководство к
>действию)".

разве я давал конкретный ответ на поставленный вопрос? я указал на один из моментов, которые человек не понял. до конца в таком вопросе разбираться - его задача. а я (это конечно только мое мнение), должен только на очевидные ошибки указывать - обучается пусть читая форум или на курсы идет.

>Бросьте адресок на zbl@gmail.ru -- вышлю, как только, так сразу.
>

спасибо за заботу - адресок указан в сабже сообщения, на которое Вы отвечали...

>>а если разобраться, что такое есть *.h, *.c, *.o  и доки
>>про gcc почитать?
>Красную краску в студию!

(совсем забыл сказать об этом в начале своего ответа)

>Если по англьцки не в зуб ногой, то кыш сюда:

да не! мы с ним (аглицким) замечательно ладим. может просто у кого-то проблемы с русским? - какой был задан вопрос (атором темы) - такой и был  дан ответ.

>http://lsi.bas-net.by/bsuir/base/node1.html

обидно, но ссылочка похожа на дохлую. жаль - столько знаний упустил.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "проблемы компоновки с gcc"
Сообщение от SergeiZz Искать по авторуВ закладки on 30-Июн-03, 09:24  (MSK)
>спасибо за уточнение
>
>разве я давал конкретный ответ на поставленный вопрос? я указал на один
>из моментов, которые человек не понял. до конца в таком вопросе
>разбираться - его задача. а я (это конечно только мое мнение),
>должен только на очевидные ошибки указывать - обучается пусть читая форум
>или на курсы идет.
>
>спасибо за заботу - адресок указан в сабже сообщения, на которое Вы
>отвечали...
>
>(совсем забыл сказать об этом в начале своего ответа)
>
>да не! мы с ним (аглицким) замечательно ладим. может просто у кого-то
>проблемы с русским? - какой был задан вопрос (атором темы) -
>такой и был  дан ответ.
Шибко извиняюсь, однако... Однако, недорозумение,..
Я этот постинг не в то место сунул. Это был ответ не Вам а вопрошавшему.
Я просто цитировал Ваш текст, обращаясь к нему. Ресурсы для самых
маленьких ему нужны, а не Вам.
RomanD, кажется, понял меня правильно.

>>http://lsi.bas-net.by/bsuir/base/node1.html
>обидно, но ссылочка похожа на дохлую. жаль - столько знаний упустил.
Да, сдохла. Но, когда я писал, работала -- проверял.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "проблемы компоновки с gcc"
Сообщение от LS Искать по авторуВ закладки on 30-Июн-03, 14:57  (MSK)

>Шибко извиняюсь, однако... Однако, недорозумение,..
>Я этот постинг не в то место сунул. Это был ответ не
>Вам а вопрошавшему.
>Я просто цитировал Ваш текст, обращаясь к нему. Ресурсы для самых
>маленьких ему нужны, а не Вам.
>RomanD, кажется, понял меня правильно.
>

я тоже извиняюсь - мог бы и сообразить в чем дело...


  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "проблемы компоновки с gcc"
Сообщение от Steve L. Kuznetsov emailИскать по авторуВ закладки on 16-Июл-03, 14:54  (MSK)
>>>http://lsi.bas-net.by/bsuir/base/node1.html
>>обидно, но ссылочка похожа на дохлую. жаль - столько знаний упустил.
>Да, сдохла. Но, когда я писал, работала -- проверял.
Сейчас тоже работает (15:02 MSD/MSK Wed 16 July 2003).

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "проблемы компоновки с gcc"
Сообщение от Olej emailИскать по авторуВ закладки on 25-Июн-03, 12:05  (MSK)
>Не понял обозначений. Скажем есть модуль module.h, к нему есть module.c и
>
>module.o; есть прога prog.c, которая этот модулёк использует. Все в одной
>папке. Как компилить?
>  Пробовал :
>#gcc prog.c -lmodule.o
>#gcc prog.c -l module.o
>#gcc prog.c -lmodule
>#gcc prog.c -l module

Чтобы точнее понять обозначения, нужно точнее использовать терминологию, особенно после Win... Что такое "модуль"? - один из *.h/*.cc фалов в проекте (Makefile)? или "нечто", что должно отдельно собираться в библиотеку? статическую *.a или разделяемую *.so, или разговор об "модуле ядра" и нужно показать все ключи?

Но я таки предполагаю - что просто один из файлов проекта?
Тогда (простейший случай):
#gcc prog.c module.c -oprog
и всё...

Здесь уже говорили, что gcc - это и компилятор (кстати, для многих, >10 аппаратных платформ, и с многих языков: c/c++, fortran, ada - если 3.х..), и это же - компоновщик. В зависимости от ключей можно использовать любую одну фазу, или обе...

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру