Подскажите плз

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

eMAZAy
Сообщения: 2

Подскажите плз

Сообщение eMAZAy »

Создал 2 простейших проги на Qt (окошко и кнопка) скомпилировал одну в исполняемый файл другую в библиотеку (name.so) Хочу при нажатии кнопки в первой чтоб запускалась вторая. А как заделать что-т никак не допру. Может кто посоветуе???
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: Подскажите плз

Сообщение flook »

(eMAZAy @ Суббота, 02 Июля 2005, 8:29) писал(а):Создал 2 простейших проги на Qt (окошко и кнопка) скомпилировал одну в исполняемый файл другую в библиотеку (name.so) Хочу при нажатии кнопки в первой чтоб запускалась вторая. А как заделать что-т никак не допру. Может кто посоветуе???

При компиляции первой сказать -lname.
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
Jenizix
Сообщения: 53

Re: Подскажите плз

Сообщение Jenizix »

system(); ???
Ушел в себя, вернусь не скоро...
________________________________
Slackware 10.1 / FluxBox 0.9.13
Спасибо сказали:
eMAZAy
Сообщения: 2

Re: Подскажите плз

Сообщение eMAZAy »

Linux

При нажатии кнопки в первой проге в "слоте" проходит обработка нажатия, но что там писать чтоб запустить вторую программу из библиотеки?????????
Т.е Как мне подгрузить библиотеку и использовать функции. Я так думаю что надо запустить фенкцию main() из библиотеки, а как это сделать???????
Спасибо сказали:
Аватара пользователя
flook
Сообщения: 585
Статус: Просто flook

Re: Подскажите плз

Сообщение flook »

Нет не так.
Итак.

Код: Выделить всё

prg1.c
extern void do_smth(void);
int main()
{
   do_smth();
}

prg2.c
#include <stdio.h>
void do_smth(void)
{
   printf("Hello world\n");
}

Компилить это нужно примерно так

Код: Выделить всё

gcc -c prg2.c -o libprg2.so
gcc prg1.c -o prg -lop2 -L.

Все B)
В каждом из нас спит гений... и с каждым днем все крепче...
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Подскажите плз

Сообщение t.t »

(Jenizix @ Суббота, 02 Июля 2005, 11:28) писал(а):system(); ???
(eMAZAy @ Суббота, 02 Июля 2005, 12:26) писал(а):Linux
Супер! :D
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
LilFox
Сообщения: 137
Статус: ^^.,
ОС: Gentoo Linux

Re: Подскажите плз

Сообщение LilFox »

Для flook:
насчет extern, это обязательно писать??? И в чем соль, если допустим я напишу не extern int smth(void); а просто int smth(void);
Я так делал - работало, даже warrings не было. кстате что там насчет флагов сборки библек, есть у кого-нить описание:
gcc some.c -Wl,--exoprt-dynamic -o some.so
Для eMAZAy: хе-хе, чувствуется виндосная школа, быть может даже Delphi или BCB ;)
Best Wishes. LilFox
Won't someone help me find my little Clare.
Спасибо сказали:
Аватара пользователя
Sparky
Сообщения: 604
Статус: core dumped
ОС: Plan 9

Re: Подскажите плз

Сообщение Sparky »

([MP]DisconNecT @ Пятница, 29 Июля 2005, 11:45) писал(а):Для flook:
насчет extern, это обязательно писать??? И в чем соль, если допустим я напишу не extern int smth(void); а просто int smth(void);
Я так делал - работало, даже warrings не было. кстате что там насчет флагов сборки библек, есть у кого-нить описание:
gcc some.c -Wl,--exoprt-dynamic  -o some.so
Для eMAZAy:  хе-хе, чувствуется виндосная школа, быть может даже Delphi или BCB ;)

Спецификатор extern говорит компилятору о том что ф-ия определена где-то в другом месте/файле.
Блог
--------------------

GCS/M/MU/P/IT/E d- s: a- C++(+++) UBL++ P->-- L+++$ E- W+++$ N* o? K? w>--
O M-@ V- PS@ PE+ Y+ PGP+ t 5 X R* tv-->- b++ DI? D>+ G e+(++) h--- r+ y++
Спасибо сказали: