2012-09-19 2 views
3

일부 오픈 소스 코드를 실험하고 있는데 원격 Linux 장치에 배포하는 데 문제가 있습니다. 라이브러리의 소프트 링크를 업로드 할 때 오류가 발생합니다. 나는 다음과 같습니다Qt 생성자가있는 원격 Linux 장치에 대한 소프트 링크가있는 라이브러리 복사

  • 우분투 10.04 윈도우 7 시스템에서 VM웨어 플레이어에서 실행
  • 나는 동일한 시스템을 사용했습니다 2.4.1

임베디드 리눅스 디바이스

  • Qt는 창조주 다른 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 
    

    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 필드가 많이하는 것처럼 보이지 않습니다.

  • +0

    BusyBox에는 매우 간단한 버전의 유틸리티 만 있습니다. 따라서 BusyBox의 ln에는 -v 옵션이 없습니다. 아마 생성 된 Makefile에서 -v 옵션을 수동으로 제거하여 문제를 해결할 수 있습니다. 그러나 적절한 Makefile을 생성하려면 qmake 구성을 변경해야합니다. – divanov

    +0

    Makefile에 '-v'또는 'ln'이 표시되지 않습니다. 나는 내 질문에 내가 갖고있는 것을 업데이트 할 것이다. – GrandAdmiral

    +0

    ln/busybox의 오류 메시지가 나타나는 명령을 보는 데 도움이 될 수 있습니다. Makefile에 어떤 사건도 없습니까? – divanov

    답변

    0

    Creator는 Makefile을 사용하지 않고 파일 자체를 배포하므로 편집하면 도움이되지 않습니다.

    많은 작업이있었습니다. 제작자가 버전 2.4부터 원격 Linux에서 더 잘 작동하도록하기 때문에 최신 버전을 사용해보십시오.