Сборка приложения в виде либы

Модератор: Модераторы разделов

TwisT
Сообщения: 265
ОС: Debian

Сборка приложения в виде либы

Сообщение TwisT »

Всем доброго времени суток,
Собственно САБЖ. Тут такая извращенная необходимость возникла,
собрать программму sox в виде либы, а потом вызывать ее функцию main()
с необходимыми аргументами.

ЗЫ: Есть жуткое подозрение что нужно чето в makefile поменять, вот токо че?
Linux user #432536.
Спасибо сказали:
Аватара пользователя
xorader
Сообщения: 1030
Статус: собирающий миры
ОС: Debian

Re: Сборка приложения в виде либы

Сообщение xorader »

в либе функция "main" ? :) Или мы не о "Си" ?
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Сборка приложения в виде либы

Сообщение TwisT »

Она самая
Linux user #432536.
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: Сборка приложения в виде либы

Сообщение halturin »

так посвятите в сокральный смысл функции main в вашей предстоящей библиотеке :).
Вообще, библиотека - есть набор функций. Как собрать? Вот пример...

есть файл mycrypt.c

Код:

#include <stdio.h> #include <crypt.h> char * mycrypt(char * cleartxt, char *hash) { return crypt(cleartxt, hash); };


для сборки библиотеки создаем Makefile

Код:

CC = gcc CFLAGS = -g -s -O2 -I. -fPIC LDFLAGS = -shared INSTALL = install INCLUDES = /usr/include; MYPATH = /usr/local/mylibs all: mycrypt.so LIBDIR = /usr/lib;/lib LIBS +=crypt mycrypt.so: mycrypt.c $(CC) -o $@ $(LDFLAGS) $(CFLAGS) -l$(LIBS) mycrypt.c install: mycrypt.so $(INSTALL) $? $(MY_PATH) clean: rm -f ./*.so rm -f ./*.o
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Сборка приложения в виде либы

Сообщение TwisT »

2 halturin

Никакого сокрально смысла там нет
нужно что бы программа находила только определенные файлы в указанных каталогах
файлы представляют из себя чистый ИКМ компандированный А-законом
вот, в что бы осуществить декомпрессию нужно заюзать sox или внести
исзодники sox в свою прогу, а там около 90 файлов
мне проще собрать sox как библиотеку и вызвать главную функцию с параметрами
потом будет сжатие в mp3 и отправка по SMTP, но это щас не главное

спасибо за пример :-)
Linux user #432536.
Спасибо сказали:
Аватара пользователя
sergeyvp
Сообщения: 807
ОС: ubuntu

Re: Сборка приложения в виде либы

Сообщение sergeyvp »

так может просто системным вызовом воспользоваться
system()
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Сборка приложения в виде либы

Сообщение TwisT »

Не, начальство сказало чтобы был один
испольняемый файл + библиотеки
system() использовать можно, но не в этих целях
Linux user #432536.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Сборка приложения в виде либы

Сообщение KiWi »

dlopen and other dl* :D
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Сборка приложения в виде либы

Сообщение TwisT »

Про dlopen и т.п. я знаю
мне бы для начала либу получить
Linux user #432536.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Сборка приложения в виде либы

Сообщение KiWi »

TwisT писал(а):
10.04.2007 20:50
мне бы для начала либу получить

Дык, а в чём трабл?
Пример вроде привели выше.
Лезем в Makefile и заменяем финальную компиляцию в бинарник на компиляцию в либу.
Спасибо сказали:
Аватара пользователя
halturin
Сообщения: 167
ОС: Linux

Re: Сборка приложения в виде либы

Сообщение halturin »

TwisT писал(а):
10.04.2007 20:50
Про dlopen и т.п. я знаю
мне бы для начала либу получить

ну так с готовой либой можешь слинковаться и dlopen не понадобится )
Спасибо сказали:
TwisT
Сообщения: 265
ОС: Debian

Re: Сборка приложения в виде либы

Сообщение TwisT »

Всем спасибо, проблему решил, хотя пришлось повозится
фишка была в том что прога собирала зачем то статическую библиотеку
а потом ее к себе линковала, если кому интересно вот ссылка
очень сильно помогла

ЗЫ: Теперь таварищи будем мучать протокол SMTP. Кто нить работал с ним?
Нужно файлы отправлять, а я чето смутно себе этот процесс представляю
Linux user #432536.
Спасибо сказали: