Помогите понять: makefile+lib.a

Все о программировании под *nix
unq
Интересующийся
Сообщения: 53
Зарегистрирован: 05 июл 2004, 00:58

Помогите понять: makefile+lib.a

Сообщение unq »

Дело в следующем: Компиляю static lib, затем компиляю исполянемый файлик, в котором пользуются методы этой либ. Все типа ок, тока вот когда пытаюсь запустить полученный "exe" в командной строке пишется "Aborted"... :?:

Аватара пользователя
sm
Неотъемлемая часть форума
Сообщения: 431
Зарегистрирован: 12 мар 2004, 16:03
Контактная информация:

Сообщение sm »

Просто пишет "Aborted"? - Дай сообщение об ошибке полностью.

И вообще удостоверься, что ты сделал все так, как написано здесь:
http://www.firststeps.ru/linux/r.php?5

unq
Интересующийся
Сообщения: 53
Зарегистрирован: 05 июл 2004, 00:58

Сообщение unq »

Дейстивительно, просто пишет aborted, и больше ни чего.....

вот как делал я:
makefile для lib:
///////////////////////////////////////////////////////////////////////////////
LIB=libTEST.a

CC=g++
CCFLAGS=-g -c -MD

AR = ar
ARFLAGS = cr

all: $(LIB) clean_d

$(LIB): $(patsubst %.cpp,%.o,$(wildcard *.cpp))
$(AR) $(ARFLAGS) $(LIB) $(patsubst %.cpp,%.o,$(wildcard *.cpp))

%.o: %.cpp
$(CC) $(CCFLAGS) $<
/////////////////////////////////////////////////////////////////////////////////////

makefile для "exe":
/////////////////////////////////////////////////////////////////////////////////////
CC=g++
CCFLAGS=-g -c -I..
EXEFLAGS=-g -o

test :test.o
$(CC) $(EXEFLAGS) test test.o -L.. -lTEST

test.o: test.cpp
$(CC) $(CCFLAGS) test.cpp
/////////////////////////////////////////////////////////////////////////////////////

не делал только ranlib, но прочитав твою месагу - попробовал. Результат тот-же....
:(

unq
Интересующийся
Сообщения: 53
Зарегистрирован: 05 июл 2004, 00:58

Сообщение unq »

попробовал запустить свой "exe" под gdb....

получил вот такое:

Program received signal SIGABRT, Aborted.
0x00785c32 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) Quit

первой строкой у меня стоит:
cout<<"hello"<<endl;

так он даже туда не дошел....

не понимаю

Аватара пользователя
sm
Неотъемлемая часть форума
Сообщения: 431
Зарегистрирован: 12 мар 2004, 16:03
Контактная информация:

Сообщение sm »

Ну, наверное, не увидев исходников эдесь тебе конкретно не объяснят причину твоего aborted.

unq
Интересующийся
Сообщения: 53
Зарегистрирован: 05 июл 2004, 00:58

Сообщение unq »

А вот такой вопрос:
если у меня в моей либ есть класс для работы с потоками, а в "exe" я создаю много потоков (multi-thread), то какие ключи мне надо пользовать для компиляции lib, и какие для копмиляции "exe"???

Аватара пользователя
fa3a
Неотъемлемая часть форума
Сообщения: 619
Зарегистрирован: 25 июл 2003, 17:22
Откуда: Minsk

Сообщение fa3a »

-lpthread
Never touch the running program!!!

Aleksey Kondratenko
Неотъемлемая часть форума
Сообщения: 250
Зарегистрирован: 12 авг 2003, 03:55
Контактная информация:

Сообщение Aleksey Kondratenko »

Если б не было pthread то не слинковалось бы.
При пользовании потоков следует не забывать о -D_REENTRANT.

Поставь breakpoint на abort. А затем посмотри backtrace (bt).

Аватара пользователя
fa3a
Неотъемлемая часть форума
Сообщения: 619
Зарегистрирован: 25 июл 2003, 17:22
Откуда: Minsk

Сообщение fa3a »

Если б не было pthread то не слинковалось бы.

на самом деле на RHEL 3.1 тока что проверил.. слинковалось, однако при обращении к pthread_create получил кору -- обращение к адресу 0x0 :-)) так что бывает и так.. в AIX-е вообще на ноль можно делить без коры..
Never touch the running program!!!

Ответить