Здравствуйте! Впервые столкнулась с использованием статических библиотек. Итак, что получилось.
Я собрала проект-библиотеку, получила файл librlua.a
Затем создала новый проект, папка выглядит так(картинка)
http://forum.sysman.ru/index.php?act=Attac...p;id=1320494091В файле pro написали
QT += core
QT -= gui
LIBS += C:/Qt/2010.05/Prilozenie/lib/librlua.a
TARGET = Prilozenie
CONFIG += console
CONFIG -= app_bundle
INCLUDEPATH+= ./include
TEMPLATE = app
SOURCES += main.cpp \
Core.cpp
HEADERS += \
Core.h
Всё собирается,пока main почти пустая
#include <stdlib.h>
using namespace std;
int main()
{
/* Core core;
lua_State*L;
L=lua_open();
luaL_openlibs(L);
core.Register(L);
int status=luaL_loadfile(L, "script.lua");
if (status)
{
fprintf(stderr, "File not found");
exit(1);
}
int num;
cin>>num;
int result=lua_pcall(L, 0, LUA_MULTRET, 0);
if(result)
{
fprintf(stdout, "runtime error\n");
exit(1);
}
lua_close(L);*/
getch();
return 0;
}
Как только убираешь комментарии,начинается использование того,что определено в библиотеке по идее(работа с луа функциями) и начинаются ошибки
Ошибка: :: error: collect2: ld returned 1 exit status
А сообщения сборки при этом
Выполняется сборка проекта Prilozenie...
Настройки не изменились, этап qmake пропускается.
Запускается "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" -w
mingw32-make: Entering directory `C:/Qt/2010.05/Prilozenie-build-desktop'
c:\qt\2010.05\qt\bin\qmake.exe -spec ..\qt\mkspecs\win32-g++ -o Makefile ..\Prilozenie\Prilozenie.pro
mingw32-make: Leaving directory `C:/Qt/2010.05/Prilozenie-build-desktop'
mingw32-make: Entering directory `C:/Qt/2010.05/Prilozenie-build-desktop'
C:/Qt/2010.05/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/2010.05/Prilozenie-build-desktop'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,console -mthreads -Wl -o debug\Prilozenie.exe debug/main.o debug/Core.o -L"c:\Qt\2010.05\qt\lib" C:/Qt/2010.05/Prilozenie/lib/librlua.a -lQtCored4
mingw32-make[1]: Leaving directory `C:/Qt/2010.05/Prilozenie-build-desktop'
mingw32-make: Leaving directory `C:/Qt/2010.05/Prilozenie-build-desktop'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(loadlib.o):loadlib.c:(.text+0x9bd): undefined reference to `dlsym'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(loadlib.o):loadlib.c:(.text+0xa04): undefined reference to `dlopen'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(loadlib.o):loadlib.c:(.text+0xa11): undefined reference to `dlerror'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(loadlib.o):loadlib.c:(.text+0xa29): undefined reference to `dlerror'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(loadlib.o):loadlib.c:(.text+0xffa): undefined reference to `dlclose'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(loslib.o):loslib.c:(.text+0x46): undefined reference to `mkstemp'
C:/Qt/2010.05/Prilozenie/lib/librlua.a(ldo.o):ldo.c:(.text+0x8d3): undefined reference to `_longjmp'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\Prilozenie.exe] Error 1
mingw32-make: *** [debug] Error 2
Процесс "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" завершился с кодом %2.
Возникла ошибка при сборке проекта Prilozenie (цель: Настольный компьютер)
Во время выполнения сборки на этапе "Сборка"
Решать добавлением файлов?То есть как только начинаем использовать функции,описанные по идее в собранной библиотеке, работать отказывается. Что не так?
Советовали применять subdir и libdir, но не найду,как с ними работать, помогите,пожалуйста! Спасибо
Эскизы прикрепленных изображений