Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Copying libraries with soft links to Remote Linux Device with Qt Creator
darenT last edited by
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
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.
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.