[SOLVED] New dll.



  • Доброго времени суток.

    В правилах написано, что тут нельзя спрашивать вопросы про Qt, т.к. это не совсем та ветка форума. Но т.к мой английский оставляет желать лучшего, то осмелюсь спросить здесь (я вас боюсь). Сначала код:

    @
    //Test.pro
    SOURCES +=
    main.cpp

    INCLUDEPATH += D:/Prog/Projects/Test/DLL/
    LIBS += D:/Prog/Projects/Test/DLL-build-desktop/debug/DLL.dll

    //main.cpp
    #include <QApplication>
    #include "dll.h"

    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);
    DLL a;
    a.show();

    return app.exec&#40;&#41;;
    

    }
    @
    Код dll:
    @
    //dll.h
    #ifndef DLL_H
    #define DLL_H

    #include <QWidget>

    class Q_DECL_EXPORT DLL : public QWidget
    {
    public:
    DLL();
    };

    #endif // DLL_H

    //dll.cpp
    #include "dll.h"

    DLL::DLL()
    {
    }
    @

    При компиляции dll все идет в порядке, а вот при компиляции exe выдают код -1073741515. В консоли сборки написано следующее:
    C:/Qt/QtCreator2.2.1/mingw/bin/mingw32-make -f Makefile.Debug
    mingw32-make[1]: Entering directory D:/Prog/Projects/Test/Test-build-desktop' mingw32-make[1]: Nothing to be done forfirst'.
    mingw32-make[1]: Leaving directory `D:/Prog/Projects/Test/Test-build-desktop'

    И вот такая ошибка у меня именно когда я создаю объект к классу из dll. И из-за этого я думаю, что что-то не так с линковкой, но что, понятия не имею. Не работает с любым проектом, не только с тем, который приведен выше (это просто небольшой пример). Ах да, началось это все со вчерашнего вечера. До того момента оно работало. OS Windows 7, Qt 4.7.3, QtCreator 2.2.1.

    Спасибо за внимание.



  • Ахахаха, о да, мы страшные и ужасные :D

    Вывод мейка не совсем тот что нужен. Хотелось бы увидеть что будет после ребилда (то есть тем самым лог компиляции и линковки будет полный)



  • Та никогда ранее не писал на столь официальных форумах, мало ли, как вы можете отреагировать :)

    Т.к. я нуб, то не совсем понимаю, что Вы имели в виду. Если про Сборка->Пересобрать проект "Test" (или Сборка->Пересобрать все) тыцнуть, а потом глянуть в "Консоли сборки", то пишут "Процесс «C:\Qt\QtCreator2.2.1\mingw\bin\mingw32-make.exe» завершился нормально.". Но когда пытаюсь запустить, то все равно тот код ошибки (-1073741515), и в "консоли" обрато тот же вывод мейка. Только вот заметил раздел "Основные сообщения". Там пишут "Не удалось открыть проект «D:\Prog\Projects\Test\Test\Test.pro»: проект уже открыт" о.О Вообще не представляю, о чем это он.

    Если это не то, что Вы имели ввиду, то я таки не правильно понял. Для наглядности того, что нужно сделать можно ссылку кинуть, чтобы в дальнейшем было на что опираться (мало ли).



  • Ну тут дело не с линковкой, Линковка проходит очень даже успешно. Дллька лежит в той же папке, что и exe-файл?



  • Нет. В этом проекте в общем идет так: есть папка Test, в ней есть две папки (точнее 4, еще две папки для скомпилированных файлов) Test и DLL. В Test лежит код exe, а в DLL код самой DLL. Я подумал, что LIBS в .pro как раз и нужна для того, чтобы указывать, где лежит DLL, к которой будет линк, так что не важно, где лежит dll на стадии проектирования. А уже к готовому проекту переместить dll файл и вуа-ля.



  • Во время компиляции - да, LIBS нужна для линковки. В момент запуска в винде либы ищутся в PATH и в директории с exe-файлом.



  • Ахаха, ну я и тупица. Спасибо огромное! И правда, нужно было просто положить файлик к проекту. Читал, что нужно ставить solved после того, как проблема решена. Не могу найти, как... Не подскажите? :)



  • Нужно поставить тег solved и отредактировать заголовок темы, добавив в начале [solved] (это можно сделать через редактирование первого поста в теме)



  • Нашел. Еще раз спасибо! :)



  • Ну вот оказалось все не так страшно :-D


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.