3

いくつかのオープン ソース コードを試していますが、リモートの Linux デバイスにデプロイするのに問題があります。ライブラリのソフトリンクをアップロードするときにエラーが発生します。私は次のものを持っています:

  • Windows 7 マシンの VMWare Player で実行されている Ubuntu 10.04
  • 組み込み Linux デバイス
  • Qt クリエーター 2.4.1

私は他の Qt プロジェクトで同じシステムを使用しており、リモートの Linux ターゲットにデプロイできました。このプロジェクトは、ソフト リンクを含むライブラリを使用するという点で異なります。現在、*.pro ファイルには次のものが含まれています。

# 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

私が受け取るエラーは次のとおりです。

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.

訓練を受けていない私の目には、デバイスの BusyBox でサポートされていないコマンドを Qt が使用しようとしているように見えます。ファイルを開発環境からデバイスに移動するためのより良い方法はありますか? ライブラリで何も変更する必要はない可能性がありますが、変更する場合は自動アップロードが必要です。

ちなみに、私も QMAKE_PRE_LINK と QMAKE_POST_LINK を使ってみましたがうまくいきませんでした。Qt Creator で Deploy ステップを追加しようとするのと同じ話です。プロジェクトをライブラリにリンクする別の方法があれば、それも試してみたいと思います。

アップデート

これは、*.pro ファイルに基づいて qmake が生成するものを示す Makefile の一部です。

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/

正直なところ、install_lib.extra フィールドがあまり機能していないようです。

4

1 に答える 1

0

Creatorは、Makefileを使用せずにファイル自体をデプロイするため、ファイルを編集しても役に立ちません。

たくさんの仕事がありました。バージョン2.4以降、CreatorがリモートLinuxでより適切に動作するようになっているため、新しいバージョンを入手してみてください。

于 2012-12-16T18:25:11.557 に答える