Important: Please read the Qt Code of Conduct -

Error: PKG file does not exist, 'sis' and 'installer_sis' target are only supported for executables or projects with DEPLOYMENT statement

  • Hi,
    I was trying to run the 'spectrum' demo available under 'C:\NokiaQtSDK\Demos\4.6\spectrum'. However, I get this error when I try to build:

    Makefile:138: error: PKG file does not exist, 'sis' and 'installer_sis' target are only supported for executables or projects with DEPLOYMENT statement. Stop.

    What could I be doing wrong? Please note that instead of building the demo from the above path, I copied the complete 'spectrum' folder to C:\NokiaQtSDKProjects\spectrum path.

  • Moderators

    Looks like the demo you are trying to build does not support symbian.

    You will need to add that support. The most straight forward way is probably to set up a symbian project using Qt Creator's mobile application wizard and then copying all the symbian specific lines from the generated .pro-file over into the demo's .pro-file.

    This will most likely need some additional tweaking (filenames, etc. are bound to be different), but it should at least provide you with a guideline to follow.

    PS: Patches are welcome:-)

  • There are multiple .pro files in this folder. In all of them, I was able to see the word 'symbian'. For example, in the main .pro file, the following lines were present:

    @symbian {
    # Create a 'make sis' rule which can be run from the top-level

    # UID for the SIS file
    TARGET.UID3 = 0xA000E402


    I am not sure what this means since I am totally new to Qt itself. I haven't tried editing the files as you suggested because of this.

    Also, a Google search took me to this "blog": where somebody reported the same error. However, it seem to have got resolved automatically for him!

  • I think it already has the UID entry. I am posting the contents of the .pro files (there are 2 .pro files in this) below:

    1. Contents of spectrum. pro


    TEMPLATE = subdirs

    Ensure that library is built before application

    CONFIG += ordered

    !contains(DEFINES, DISABLE_FFT) {
    SUBDIRS += 3rdparty/fftreal

    SUBDIRS += app

    TARGET = spectrum

    symbian {
    # Create a 'make sis' rule which can be run from the top-level

    # UID for the SIS file
    TARGET.UID3 = 0xA000E402


    sources.files = README.txt spectrum.pri TODO.txt
    sources.path = $$[QT_INSTALL_DEMOS]/spectrum
    INSTALLS += sources

    1. Contents of


    static: error(This application cannot be statically linked to the fftreal library)

    TEMPLATE = app

    TARGET = spectrum

    QT += multimedia

    SOURCES += main.cpp \

    HEADERS += engine.h \

    fftreal_dir = ../3rdparty/fftreal

    INCLUDEPATH += $${fftreal_dir}

    RESOURCES = spectrum.qrc

    symbian {
    # Platform security capability required to record audio on Symbian
    TARGET.CAPABILITY = UserEnvironment

    # Provide unique ID for the generated binary, required by Symbian OS
    TARGET.UID3 = 0xA000E402


    Dynamic linkage against FFTReal DLL

    !contains(DEFINES, DISABLE_FFT) {
    symbian {
    # Must explicitly add the .dll suffix to ensure dynamic linkage
    LIBS += -lfftreal.dll
    QMAKE_LIBDIR += $${fftreal_dir}
    } else {
    macx {
    # Link to fftreal framework
    LIBS += -F$${fftreal_dir}
    LIBS += -framework fftreal
    } else {
    LIBS += -L..
    LIBS += -lfftreal


    sources.files = $$SOURCES $$HEADERS $$RESOURCES
    sources.path = $$[QT_INSTALL_DEMOS]/spectrum/app
    images.files += images/record.png images/settings.png
    images.path = $$[QT_INSTALL_DEMOS]/spectrum/app/images
    INSTALLS += sources images


    symbian {

    !contains(DEFINES, DISABLE_FFT) {
        # Include FFTReal DLL in the SIS file
        fftreal.sources = ../fftreal.dll
        fftreal.path = !:/sys/bin
        DEPLOYMENT += fftreal

    } else {
    macx {
    # Specify directory in which to create bundle
    DESTDIR = ..

        !contains(DEFINES, DISABLE_FFT) {
            # Relocate fftreal.framework into bundle
            framework_dir = ../
            framework_name = fftreal.framework/Versions/1/fftreal
            QMAKE_POST_LINK = \
                mkdir -p $${framework_dir} &&\
                rm -rf $${framework_dir}/fftreal.framework &&\
                cp -R $${fftreal_dir}/fftreal.framework $${framework_dir} &&\
                install_name_tool -id @executable_path/../Frameworks/$${framework_name} \
                                  $${framework_dir}/$${framework_name} &&\
                install_name_tool -change $${framework_name} \
                                  @executable_path/../Frameworks/$${framework_name} \
    } else {
        # Specify directory in which to create spectrum application
        DESTDIR = ..
        unix: {
            # Provide relative path from application to fftreal library
            QMAKE_LFLAGS += -Wl,--rpath=\\\$\$ORIGIN


  • :) Why OMG? Because I posted the completed file contents here?!

    I was actually creating Forum Nokia account and logged in to check the activation mail when I saw your reply. I will post there this question and will update here.

  • It's only a FFA for tamhanna. He's just spamming. He had to write a short sentence to pretend he shouldn't be banned.

    I think the problem is due to you relocating the source dir. Does it work when you compile it in its original location?

    The PRO file refers to a lot of relative dirs that are now dead ends. See the ones with "../" in them?

  • [quote author="tamhanna" date="1291484811"]Could you also show us the pri files?[/quote]

    Comes with your SDK.


    Comes with the app, which is also in your SDK.

    [quote author="tamhanna" date="1291484811"]MHO, dead path errors are shown as such.[/quote]
    Not in my experience :(

  • These are the contents of the .pri files:

    1. spectrum.pri

    @# The following macros allow certain features and debugging output

    to be disabled / enabled at compile time.

    Debug output from spectrum calculation


    Debug output from waveform generation


    Debug output from engine


    Dump input data to spectrum analyer, plus artefact data files


    Dump captured audio data


    Disable calculation of level


    Disable calculation of frequency spectrum

    If this macro is defined, the FFTReal DLL will not be built


    Disables rendering of the waveform


    If defined, superimpose the progress bar on the waveform


    Perform spectrum analysis calculation in a separate thread


    Suppress warnings about strncpy potentially being unsafe, emitted by MSVC



    1. symbianpkgrules.pri

    @!symbian: error(Only include this file for Symbian platforms)

    RSS_RULES ="group_name="QtDemos";"

    vendorinfo =
    "; Localised Vendor name"
    "%{"Nokia, Qt"}"
    " "
    "; Unique Vendor name"
    ":"Nokia, Qt""
    " "

    demos_deployment.pkg_prerules += vendorinfo
    DEPLOYMENT += demos_deployment

    isEmpty(ICON):ICON = $$QT_SOURCE_TREE/src/s60installs/qt.svg

    I tired to run the project directly from its original path. Even then, it gave me the error. Please note that it runs properly with Qt Simulator irrespective of the path.

  • Problem solved by using Qt 4.7.1 for Symbian.

    The following posts helped me in finding the reason and for setting up Qt 4.7.1:


Log in to reply