Linux.by
https://forum.linux.by/

Помогите понять: makefile+lib.a
https://forum.linux.by/viewtopic.php?f=6&t=3236
Страница 1 из 1

Автор:  unq [ 05 июл 2004, 01:13 ]
Заголовок сообщения:  Помогите понять: makefile+lib.a

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

Автор:  sm [ 05 июл 2004, 01:44 ]
Заголовок сообщения: 

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

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

Автор:  unq [ 05 июл 2004, 16:09 ]
Заголовок сообщения: 

Дейстивительно, просто пишет 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 [ 05 июл 2004, 19:04 ]
Заголовок сообщения: 

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

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

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

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

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

не понимаю

Автор:  sm [ 05 июл 2004, 23:45 ]
Заголовок сообщения: 

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

Автор:  unq [ 06 июл 2004, 16:55 ]
Заголовок сообщения: 

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

Автор:  fa3a [ 06 июл 2004, 19:32 ]
Заголовок сообщения: 

-lpthread

Автор:  Aleksey Kondratenko [ 07 июл 2004, 08:50 ]
Заголовок сообщения: 

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

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

Автор:  fa3a [ 08 июл 2004, 15:42 ]
Заголовок сообщения: 

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

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/