Why it is generating multiple library files instead of single file?



  • Hello I am using Qt 5.13.0 and MacOs Mojave version 10.14.6.
    I am trying to create share library for other developer. I would like create single library file. How can I generate single single library file instead of 4 library files, so that other developer can add that single library into other them project.

    Here my .pro file

    # ----------------------------------------------------
    # This file is generated by the Qt Visual Studio Tools.
    # ------------------------------------------------------
    
    TEMPLATE = lib
    TARGET = SquidstatLibrary
    DESTDIR = ../../out/Release/squidstatelibrary
    QT += core
    CONFIG += release shared dll
    DEFINES += WIN64 SQUIDSTATELIBRARY_LIB
    INCLUDEPATH += ./../../SquidStat \
        ./GeneratedFiles \
        . \
        ./GeneratedFiles/Release \
        ./../../global_typedefs
    
    DEPENDPATH += .
    MOC_DIR += ./GeneratedFiles/release
    OBJECTS_DIR += release
    UI_DIR += ./GeneratedFiles
    RCC_DIR += ./GeneratedFiles
    include(SquidStateLibrary.pri)
    

    outfiles:
    libSquidstatLibrary.1.0.0.dylib
    libSquidstatLibrary.1.0..dylib
    libSquidstatLibrary.1.dylib
    libSquidstatLibrary.dylib

    Try to create
    Single Library file like:
    libSquidstatLibrary.dylib

    I know one way to generate single file. If I will make change in .pro file like
    CONFIG += release shared dll plugin then it is only generating single file libSquidstatLibrary.dylib

    I am not creating plugin. I want to create share library, Is it fine to add plugin in CONFIG for generating single library file?

    if not then which change is require in .pro file?


  • Lifetime Qt Champion

    Hi,

    It's normal to have these files. If you take closer look at them you'll see that all but one are symbolic links.

    Why do you want only a single file ?


  • Lifetime Qt Champion

    Hi,

    It's normal to have these files. If you take closer look at them you'll see that all but one are symbolic links.

    Why do you want only a single file ?



  • @SGaist said in Why it is generating multiple library files instead of single file?:

    If you take closer look at them you'll see that all but one are symbolic links.

    Yes I saw that things in compiler output.

    Here My compiler output data:

    ln -s libSquidstatLibrary.1.0.0.dylib libSquidstatLibrary.dylib
    ln -s libSquidstatLibrary.1.0.0.dylib libSquidstatLibrary.1.dylib
    ln -s libSquidstatLibrary.1.0.0.dylib libSquidstatLibrary.1.0.dylib
    
    

    @SGaist said in Why it is generating multiple library files instead of single file?:

    Why do you want only a single file ?

    I am trying to create the single files because of if user want to use libSquidstatLibrary library then they need to link only single library file instead for 4 files.

    add also, I am trying to make single file similar to windows platform, so that I require to deploy only single file all time in future.

    I am curious to know if all 3 library files are internally link to libSquidstatLibrary.1.0.0.dylib then Is it fine if user add only one file into them project libSquidstatLibrary.1.0.0.dylib

    Is It fine if I will add in plugin in CONFIG ?


  • Qt Champions 2018

    @Yash001 said in Why it is generating multiple library files instead of single file?:

    then they need to link only single library file instead for 4 files.

    Can you explain this a little bit more - why does your user has to link to all 4 files, esp. when three of them are (correct) symlinks?



  • @Christian-Ehrlicher said in Why it is generating multiple library files instead of single file?:

    why does your user has to link to all 4 files, esp. when three of them are (correct) symlinks?

    Sorry for silly question. I misunderstood about symbolic link. I got my answer user need to add libSquidstatLibrary.1.0.0.dylib file.

    Thank you.