Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Проба создать статическую библиотеку.



  • Пробую создать динамическую библиотеку. Версия Qt - 4.13.0. Библиотека компилится, всё ок, подключаю её к проекту - ошибки.

    Создавал библиотеку через Qt'шное "Создать файл -> библиотека C++ -> Динамическая -> ... "
    Библиотеку подключал через Qt'шное "Добавить библиотеку..."

    [https://yadi.sk/d/p3aD33JhVNdvPg](Сыль на файлы)

    static.PNG

    Немного строк из файлов:
    static_lib_usb.h :

    int testReturn0(int leet =  1337) {return leet;}
    
    int testReturn1(int leet =  1338);
    
    int testReturn2(int leet);
    
    int testReturn3() {
        int leet =  1339;
        return leet;
    }
    
    int testReturn4(int leet =  1340);
    
    int testReturn5();
    

    static_lib_usb.cpp:

    int testReturn1(int leet) {return leet;}
    
    int testReturn2(int leet) {return leet;}
    
    int testReturn4(int leet) {return ++leet;}
    
    int testReturn5() {
        int leet =  1342;
        return leet;
    }
    

    использующий библиотеку
    main.cpp:

    using namespace std;
    
    #include <static_lib_usb.h>
    
    
    int main()
    {
        cout << "Hello test!" << endl;
        cout << testReturn0() << endl;
        cout << testReturn3() << endl;
        cout << testReturn2(228) << endl;
        cout << testReturn1() << endl;
        cout << testReturn1(229) << endl;
        cout << testReturn5() << endl;
        cout << testReturn4() << endl;
        return 0;
    }
    
    

    use_lib_USB_programm.pro:

    TEMPLATE = app
    QT += serialport core
    CONFIG += console c++11
    CONFIG -= app_bundle
    #CONFIG -= qt
    
    SOURCES += \
            main.cpp
    
    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../use_lib_USB_programmEXE_static/release/ -lstatic_lib_USB
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../use_lib_USB_programmEXE_static/debug/ -lstatic_lib_USB
    
    INCLUDEPATH += $$PWD/../use_lib_USB_programmEXE_static/release
    DEPENDPATH += $$PWD/../use_lib_USB_programmEXE_static/release
    
    win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../use_lib_USB_programmEXE_static/release/libstatic_lib_USB.a
    else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../use_lib_USB_programmEXE_static/debug/libstatic_lib_USB.a
    else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/../use_lib_USB_programmEXE_static/release/static_lib_USB.lib
    else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/../use_lib_USB_programmEXE_static/debug/static_lib_USB.lib
    
    

    static_lib_usb.pro:

    QT -= gui
    QT += serialport core
    TEMPLATE = lib
    CONFIG += staticlib
    CONFIG += c++11
    
    SOURCES += \
        static_lib_usb.cpp
    
    HEADERS += \
        static_lib_usb.h
    
    
    unix {
        target.path = $$[QT_INSTALL_PLUGINS]/generic
    }
    !isEmpty(target.path): INSTALLS += target
    


  • @suiginto said in Проба создать статическую библиотеку.:

    int testReturn3() {

    Вот здесь inline потерялся. Без него нарушение ODR.


Log in to reply