Copying libraries with soft links to Remote Linux Device with Qt Creator



  • I'm experimenting with some open source code and I'm having trouble deploying it to a remote linux device. The error happens when uploading the library's soft links. I have the following:

    • Ubuntu 10.04 running in VMWare Player on a Windows 7 machine
    • An embedded linux device
    • Qt Creator 2.4.1

    I've used the same system with other Qt projects and have been able to deploy to the remote linux target. This project is different in that it uses a library with soft links. Right now I have the following in my *.pro file:

    @# remote deployment of libraries
    install_lib.path = /home/name
    install_lib.files = ../../lib/*
    install_lib.extra = cp ../../lib/* /home/name

    install

    target.path = /home/name
    sources.path = /home/name
    INSTALLS += target sources install_lib@

    The error I receive is the following:

    @ln: invalid option -- 'v'
    BusyBox v1.19.4 (2012-09-11 06:53:36 PDT) multi-call binary.

    Usage: ln [OPTIONS] TARGET... LINK|DIR

    Create a link LINK or DIR/TARGET to the specified TARGET(s)

    -s  Make symlinks instead of hardlinks
    -f  Remove existing destinations
    -n  Don't dereference symlinks - treat like normal file
    -b  Make a backup of the target (if exists) before link operation
    -S suf  Use suffix instead of ~ when making backup files
    

    12:39:46: Failed to upload file '/home/name/Qt/proj/lib/libq.so'.
    12:39:46: Deploy step failed.@

    To my untrained eye, it looks like Qt is trying to use a command that is not supported by BusyBox on my device. Is there a better way to move the files from my development environment to the device? Chances are I won't need to change anything in the library, but I'd like the automatic upload if I do.

    By the way, I also tried using QMAKE_PRE_LINK and QMAKE_POST_LINK without success. Same story with trying to add a Deploy Step in Qt Creator. If there's another way to link my project with the library, I'd be willing to try that too.

    Update

    Here are portions of the Makefile to show what qmake is producing based on my *.pro file.
    @
    INSTALL_PROGRAM = install -m 755 -p

    install_install_lib: first FORCE
    @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/home/name/ || $(MKDIR) $(INSTALL_ROOT)/home/name/
    cp ../../lib/* /home/name
    -$(INSTALL_PROGRAM) (edit)/lib/libqhttpserver.so $(INSTALL_ROOT)/home/name/
    -$(INSTALL_PROGRAM) (edit)/lib/libqhttpserver.so.0 $(INSTALL_ROOT)/home/name/
    -$(INSTALL_PROGRAM) (edit)/lib/libqhttpserver.so.0.1 $(INSTALL_ROOT)/home/name/
    -$(INSTALL_PROGRAM) (edit)/lib/libqhttpserver.so.0.1.0 $(INSTALL_ROOT)/home/name/@

    Honestly, it doesn't seem like the install_lib.extra field is doing much.


Log in to reply
 

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