일부 오픈 소스 코드를 실험하고 있는데 원격 Linux 장치에 배포하는 데 문제가 있습니다. 라이브러리의 소프트 링크를 업로드 할 때 오류가 발생합니다. 나는 다음과 같습니다Qt 생성자가있는 원격 Linux 장치에 대한 소프트 링크가있는 라이브러리 복사
- 우분투 10.04 윈도우 7 시스템에서 VM웨어 플레이어에서 실행
- 나는 동일한 시스템을 사용했습니다 2.4.1
임베디드 리눅스 디바이스
# 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
I 나타나는 오류를 다음입니다 : Qt는 명령을 사용하려고처럼 내 훈련받지 않은 눈에
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에서 지원하지 않습니다. 개발 환경에서 장치로 파일을 옮기는 더 좋은 방법이 있습니까? 라이브러리의 내용을 변경할 필요는 없지만 자동 업로드를 원할 경우가 있습니다.
그건 그렇고, QMAKE_PRE_LINK와 QMAKE_POST_LINK도 성공하지 못했습니다. Qt Creator에서 Deploy Step을 추가하는 것과 같은 이야기. 내 프로젝트를 도서관과 연결하는 또 다른 방법이 있다면, 나는 그것을 시도 할 의향이있다.
업데이트
여기 qmake를가 내 * .PRO 파일을 기반으로 생산하는 것을 표시하는 메이크 파일의 일부이다.
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 필드가 많이하는 것처럼 보이지 않습니다.
BusyBox에는 매우 간단한 버전의 유틸리티 만 있습니다. 따라서 BusyBox의 ln에는 -v 옵션이 없습니다. 아마 생성 된 Makefile에서 -v 옵션을 수동으로 제거하여 문제를 해결할 수 있습니다. 그러나 적절한 Makefile을 생성하려면 qmake 구성을 변경해야합니다. – divanov
Makefile에 '-v'또는 'ln'이 표시되지 않습니다. 나는 내 질문에 내가 갖고있는 것을 업데이트 할 것이다. – GrandAdmiral
ln/busybox의 오류 메시지가 나타나는 명령을 보는 데 도움이 될 수 있습니다. Makefile에 어떤 사건도 없습니까? – divanov