Страница 1 из 1

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

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

Добавлено: 05 июл 2004, 01:44
sm
Просто пишет "Aborted"? - Дай сообщение об ошибке полностью.

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

Добавлено: 05 июл 2004, 16:09
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, но прочитав твою месагу - попробовал. Результат тот-же....
:(

Добавлено: 05 июл 2004, 19:04
unq
попробовал запустить свой "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
sm
Ну, наверное, не увидев исходников эдесь тебе конкретно не объяснят причину твоего aborted.

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

Добавлено: 06 июл 2004, 19:32
fa3a
-lpthread

Добавлено: 08 июл 2004, 15:42
fa3a
Если б не было pthread то не слинковалось бы.
на самом деле на RHEL 3.1 тока что проверил.. слинковалось, однако при обращении к pthread_create получил кору -- обращение к адресу 0x0 :-)) так что бывает и так.. в AIX-е вообще на ноль можно делить без коры..