Russian Qt Forum
Ноябрь 04, 2024, 20:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка со статическими библиотеками  (Прочитано 2563 раз)
aarlan
Гость
« : Ноябрь 10, 2009, 20:07 »

Добрый вечер всем.
Есть две статические либы: libtfs.a и libutil.a. При их создании ошибок не было.
Вот лог компиляции приложения, использующего эти либы
Код:
Running build steps for project dirstest...
Starting: /usr/bin/make clean -w
make: Entering directory `/home/yunus/Documents/qt/tfs/dirstest'
/usr/bin/make -f Makefile.Debug clean
make[1]: Entering directory `/home/yunus/Documents/qt/tfs/dirstest'
rm -f debug/main.o
rm -f *~ core *.core
make[1]: Leaving directory `/home/yunus/Documents/qt/tfs/dirstest'
/usr/bin/make -f Makefile.Release clean
make[1]: Entering directory `/home/yunus/Documents/qt/tfs/dirstest'
rm -f release/main.o
rm -f *~ core *.core
make[1]: Leaving directory `/home/yunus/Documents/qt/tfs/dirstest'
make: Leaving directory `/home/yunus/Documents/qt/tfs/dirstest'
Exited with code 0.
Creating gdb macros library...
Configuration unchanged, skipping QMake step.
Starting: /usr/bin/make debug -w
make: Entering directory `/home/yunus/Documents/qt/tfs/dirstest'
/usr/bin/make -f Makefile.Debug
make[1]: Entering directory `/home/yunus/Documents/qt/tfs/dirstest'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4 -Idebug -I. -o debug/main.o main.cpp
main.cpp:86: warning: unused parameter
main.cpp:86: warning: unused parameter
g++  -o dirstest debug/main.o    -L/usr/lib -lQtCore -lpthread ../lib/libtfs.a ../lib/libutil.a
../lib/libutil.a(log.o): In function `replace_specific':
/home/yunus/Documents/qt/tfs/common/log.cc:106: undefined reference to `GetErrorMessage'
collect2: ld returned 1 exit status
make[1]: *** [dirstest] Error 1
make[1]: Leaving directory `/home/yunus/Documents/qt/tfs/dirstest'
make: Leaving directory `/home/yunus/Documents/qt/tfs/dirstest'
make: *** [debug] Error 2
Exited with code 2.
Error while building project dirstest
When executing build step 'Make'

функция GetErrorMessage() объявляется в error.h:
Код:
#ifdef __cplusplus
extern "C" {
#endif
const char* GetErrorMessage(int errcode);
#ifdef __cplusplus
}
#endif
и используется в log.cc в функции replace_specific.
Все другие функции нашлись в liba'x, а эта нет.
Подскажите, что делать
Записан
aarlan
Гость
« Ответ #1 : Ноябрь 12, 2009, 21:18 »

Нашел работающее решение,правда не самое лучшее, как мне кажется.
Функцию GetErrorMessage объявил в log.h (до этого была в errors.h), определил в log.cc, поскольку она никем кроме replace_specific(), которая объявлена в log.h не используется. Все теперь правильно работает, правда модульность немного нарушена
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.111 секунд. Запросов: 20.