The OpenNET Project / Index page

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

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

"Ламерский вопрос про описание библиотек"
Сообщение от Cadaver Искать по авторуВ закладки(ok) on 25-Авг-04, 13:35  (MSK)
Написал .h файл, там только дефайны макросов и заголовки функций. Есть в том же каталоге файл .с, в котором описания этих функций. Так загвоздка вот в чем: если пытаюсь компилить прогу с #include .h-файл, то линковщик говорит что не вижу описаний функций таких-то (тех, которые в .h). Приходится компилить вначале .с в .о (gcc -c ...), а потом писать gcc myprog.c .o-файл -o myprog и только тогда все компилится нормально. Расскажите, как надо сделать чтоб моя прога компилилась без всех этих заморочек с .о, как нормальные стандартные библиотеки (gcc myprog.c -o myprog)?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Ламерский вопрос про описание библиотек"
Сообщение от kir Искать по авторуВ закладки(??) on 25-Авг-04, 14:15  (MSK)
> Написал .h файл, там только дефайны макросов и заголовки функций. Есть
>в том же каталоге файл .с, в котором описания этих функций.
>Так загвоздка вот в чем: если пытаюсь компилить прогу с #include
>.h-файл, то линковщик говорит что не вижу описаний функций таких-то (тех,
>которые в .h). Приходится компилить вначале .с в .о (gcc -c
>...), а потом писать gcc myprog.c .o-файл -o myprog и только
>тогда все компилится нормально. Расскажите, как надо сделать чтоб моя прога
>компилилась без всех этих заморочек с .о, как нормальные стандартные библиотеки
>(gcc myprog.c -o myprog)?

разве неучил в чем разница #include <> от #include "" ?
#include "<name-h-file>.h"


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

2. "Ламерский вопрос про описание библиотек"
Сообщение от Cadaver Искать по авторуВ закладки(ok) on 25-Авг-04, 15:36  (MSK)
>разве неучил в чем разница #include <> от #include "" ?
>#include "<name-h-file>.h"

У меня в начале и написано #include "file.h", все равно линковщик ругается, если gcc myptog.c -o myprog
undefined reference to ...
ld returned 1 status, блин!

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

3. "Ламерский вопрос про описание библиотек"
Сообщение от SergeiZz Искать по авторуВ закладки on 25-Авг-04, 16:31  (MSK)
>>разве неучил в чем разница #include <> от #include "" ?
>>#include "<name-h-file>.h"
>
>У меня в начале и написано #include "file.h", все равно линковщик ругается,
>если gcc myptog.c -o myprog
>undefined reference to ...
>ld returned 1 status, блин!
Попробуй
g++ -Wall myptog.c -o myprog

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

4. "Ламерский вопрос про описание библиотек"
Сообщение от vnp emailИскать по авторуВ закладки(??) on 25-Авг-04, 21:36  (MSK)
> Написал .h файл, там только дефайны макросов и заголовки функций. Есть
>в том же каталоге файл .с, в котором описания этих функций.
>Так загвоздка вот в чем: если пытаюсь компилить прогу с #include
>.h-файл, то линковщик говорит что не вижу описаний функций таких-то (тех,
>которые в .h). Приходится компилить вначале .с в .о (gcc -c
>...), а потом писать gcc myprog.c .o-файл -o myprog и только
>тогда все компилится нормально. Расскажите, как надо сделать чтоб моя прога
>компилилась без всех этих заморочек с .о, как нормальные стандартные библиотеки
>(gcc myprog.c -o myprog)?

Чтобы собиралось (а не компилилось, кстати) как библиотека, нужно сделать библиотеку mylib.a (man ar), и положить в место, известное линкеру (man ldconfig).
При этом программу все равно придется собирать с флагом -lmy.
То, что вы называете "без заморочек" -- обман зрения. Попробуйте добавить флаг -v к вызову gcc, и станет видно, какие библиотеки и файлы gcc цепляет по умолчанию. Чтобы к ним добавилась ваша библиотека, нужно будет править конфиги (и/или исходники) gcc...
А по хорошему, советую написать makefile, с зависимостью типа
myprog: myprog.o mylib.o
и в дальнейшем говорить make и ничего больше.

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

5. "Ламерский вопрос про описание библиотек"
Сообщение от qq Искать по авторуВ закладки(ok) on 26-Авг-04, 01:28  (MSK)
>Чтобы собиралось (а не компилилось, кстати) как библиотека, нужно сделать библиотеку mylib.a

точнее
libmy.a

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

6. "Ламерский вопрос про описание библиотек"
Сообщение от vnp emailИскать по авторуВ закладки(??) on 26-Авг-04, 03:42  (MSK)
>>Чтобы собиралось (а не компилилось, кстати) как библиотека, нужно сделать библиотеку mylib.a
>
>точнее
>libmy.a

Разумеется

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

7. "Ламерский вопрос про описание библиотек"
Сообщение от Cadaver Искать по авторуВ закладки(??) on 26-Авг-04, 13:09  (MSK)
Спасибо за подробное разъяснение. За что люблю этот форум - это за то что здесь не прикалываются над незнанием и не издеваются, а реально помогают разобраться.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Ламерский вопрос про описание библиотек"
Сообщение от Gorynych Искать по авторуВ закладки(??) on 01-Сен-04, 10:03  (MSK)
> Написал .h файл, там только дефайны макросов и заголовки функций. Есть
>в том же каталоге файл .с, в котором описания этих функций.
>Так загвоздка вот в чем: если пытаюсь компилить прогу с #include
>.h-файл, то линковщик говорит что не вижу описаний функций таких-то (тех,
>которые в .h).
Ремарка: head file и линковщик в общем случае вещи перпендикулярные (если, конечно, в head file нет опций для линкера)


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


Удалить

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




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

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