crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Использование статических библиотек, проблемы при компиляции проекта
Mouse12x3oz
  опции профиля:
сообщение 5.11.2011, 19:02
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 5.11.2011
Пользователь №: 2981

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! Впервые столкнулась с использованием статических библиотек. Итак, что получилось.
Я собрала проект-библиотеку, получила файл 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, но не найду,как с ними работать, помогите,пожалуйста! Спасибо :unsure:
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 5.11.2011, 19:38
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Для подключения библиотеки используйте мастер:
ПКМ в .pro файле -> Добавить библиотеку. В появившемся мастере выбираем нужные пункты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Mouse12x3oz
  опции профиля:
сообщение 5.11.2011, 19:42
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 5.11.2011
Пользователь №: 2981

Спасибо сказали: 0 раз(а)




Репутация:   0  


Простите пожалуйста за невежество,можно ли подробнее? ПКМ? где что найти,прям по пунктам,простите,я только начинаю учиться(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 5.11.2011, 19:45
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


ПКМ - это правая кнопка мыши :)

После этого появится мастер настройки. И руководствуясь его подсказками загрузите нужную вам библиотеку.

Прямо внутри окна с содержимым .pro файла кликните и там увидите нужные пункты.

Сообщение отредактировал RazrFalcon - 5.11.2011, 19:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Mouse12x3oz
  опции профиля:
сообщение 5.11.2011, 20:36
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 5.11.2011
Пользователь №: 2981

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо, но если честно,вообще ничего не появляется. Всё, что есть, это копировать и вставить,выделить все и т.д.
и вот,что интересно,разве мы уже не добавили,когда писали
LIBS += C:/Qt/2010.05/Prilozenie/lib/librlua.a
INCLUDEPATH+= ./include
??
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 5.11.2011, 22:05
Сообщение #6


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


http://doc.qt.nokia.com/qtcreator-2.3/crea...-libraries.html

так правильнее, так как для всех платформ
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Mouse12x3oz
  опции профиля:
сообщение 5.11.2011, 22:54
Сообщение #7


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 5.11.2011
Пользователь №: 2981

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо, на линуксе так получилось,у меня там версия новее. Надеюсь,это исправит ошибки...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Mouse12x3oz
  опции профиля:
сообщение 6.11.2011, 21:08
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 5.11.2011
Пользователь №: 2981

Спасибо сказали: 0 раз(а)




Репутация:   0  


На windows ситуация такая (картинка): ругается на путь C:\Documents and Settings\Elena\Application\lib\librlua.a
Дело в расширении библиотеки? надо как-то переделать ее саму или в чем?

На linux она прилепилась,но там ошибки:
нет декларации для cin,exit, но он не знает почему-то старндартные библиотеки, в которых они хранятся. Подключаю как обычно,ошибки остаются,а библиотеки подчеркиваются.

Перенесла этот успешно собранный проект с линукса на виндоус - ошибка
:-1: ошибка: No rule to make target `c:/Qt/prilogenie/../Prilozenie/lib/debug/rlua.lib', needed by `debug\prilogenie.exe'. Stop.

Консоль сборки :
Выполняется сборка проекта prilogenie...
Настройки не изменились, этап qmake пропускается.
Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe»
C:/QtSDK/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/prilogenie-build-desktop'
mingw32-make[1]: Leaving directory `C:/Qt/prilogenie-build-desktop'
mingw32-make[1]: *** No rule to make target `c:/Qt/prilogenie/../Prilozenie/lib/debug/rlua.lib', needed by `debug\prilogenie.exe'.  Stop.
mingw32-make: *** [debug] Error 2
Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился с кодом 2.
Возникла ошибка при сборке проекта prilogenie (цель: Настольный компьютер)
Во время выполнения сборки на этапе «Сборка»


Помогите,пожалуйста.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Mouse12x3oz
  опции профиля:
сообщение 6.11.2011, 22:16
Сообщение #9


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 5.11.2011
Пользователь №: 2981

Спасибо сказали: 0 раз(а)




Репутация:   0  


В общем,в итоге вышло то же самое,те же ошибки,как когда руками прикручивала - не видит функций

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 10:37