crossplatform.ru

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


  Ответ в Использование статических библиотек
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Mouse12x3oz Дата 6.11.2011, 22:16
  В общем,в итоге вышло то же самое,те же ошибки,как когда руками прикручивала - не видит функций
Mouse12x3oz Дата 6.11.2011, 21:08
  На 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 Дата 5.11.2011, 22:54
  Спасибо, на линуксе так получилось,у меня там версия новее. Надеюсь,это исправит ошибки...
RazrFalcon Дата 5.11.2011, 22:05
  http://doc.qt.nokia.com/qtcreator-2.3/crea...-libraries.html

так правильнее, так как для всех платформ
Mouse12x3oz Дата 5.11.2011, 20:36
  Спасибо, но если честно,вообще ничего не появляется. Всё, что есть, это копировать и вставить,выделить все и т.д.
и вот,что интересно,разве мы уже не добавили,когда писали
LIBS += C:/Qt/2010.05/Prilozenie/lib/librlua.a
INCLUDEPATH+= ./include
??
RazrFalcon Дата 5.11.2011, 19:45
  ПКМ - это правая кнопка мыши :)

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

Прямо внутри окна с содержимым .pro файла кликните и там увидите нужные пункты.
Mouse12x3oz Дата 5.11.2011, 19:42
  Простите пожалуйста за невежество,можно ли подробнее? ПКМ? где что найти,прям по пунктам,простите,я только начинаю учиться(
RazrFalcon Дата 5.11.2011, 19:38
  Для подключения библиотеки используйте мастер:
ПКМ в .pro файле -> Добавить библиотеку. В появившемся мастере выбираем нужные пункты.
Mouse12x3oz Дата 5.11.2011, 19:02
  Здравствуйте! Впервые столкнулась с использованием статических библиотек. Итак, что получилось.
Я собрала проект-библиотеку, получила файл 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:
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 27.4.2024, 16:39