Статьи Галерея Форум Чат Файлы HowTo Ссылки Поиск
Текущее время: 16 окт 2019, 23:46




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Помогите понять: makefile+lib.a
СообщениеДобавлено: 05 июл 2004, 01:13 
Интересующийся

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


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 05 июл 2004, 01:44 
Неотъемлемая часть форума
Аватара пользователя

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

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


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 05 июл 2004, 16:09 
Интересующийся

У нас с: 05.07.2004
Сообщения: 53
Дейстивительно, просто пишет 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, но прочитав твою месагу - попробовал. Результат тот-же....
:(


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 05 июл 2004, 19:04 
Интересующийся

У нас с: 05.07.2004
Сообщения: 53
попробовал запустить свой "exe" под gdb....

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

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

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

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

не понимаю


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 05 июл 2004, 23:45 
Неотъемлемая часть форума
Аватара пользователя

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


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 06 июл 2004, 16:55 
Интересующийся

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


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 06 июл 2004, 19:32 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 25.07.2003
Сообщения: 623
Откуда: Minsk
-lpthread

_________________
Never touch the running program!!!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 07 июл 2004, 08:50 
Неотъемлемая часть форума

У нас с: 12.08.2003
Сообщения: 250
Если б не было pthread то не слинковалось бы.
При пользовании потоков следует не забывать о -D_REENTRANT.

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


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: 08 июл 2004, 15:42 
Неотъемлемая часть форума
Аватара пользователя

У нас с: 25.07.2003
Сообщения: 623
Откуда: Minsk
Цитата:
Если б не было pthread то не слинковалось бы.

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

_________________
Never touch the running program!!!


Вернуться к началу
 Не в сети Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
[ All resources are available under GNU GPL ] [ Support ] [ Hosted by DataHata | MyCloud.by ] [ Powered by phpBB® Forum Software © phpBB Group ]

LVEE Winter LVEE Rambler's Top100