누구나 QT와 OpenCV를 함께 사용하고 소프트웨어 패키징 및 사용자에게 배포하는 좋은 방법이 있습니까? 우리가 개발 한 QT Creator에는 게시 및 배포 버튼이 있지만 일반적인 건물보다 생성 된 이진 파일과 경로의 라이브러리에 동적 링크를 사용하는 것과는 다른 것을 수행하지 않습니다.단일 실행 파일에서 QT와 OpenCV를 연결하는 QT Creator 내의 배포 및 정적 패키시
우리는 주로 Linux와 Mac에 관심이 있지만 Windows 용 좋은 방법에 대해서도 듣고 싶습니다.
정적으로 QT 버전을 컴파일해야한다는 연구가 있었지만 일반적인 테스트에서 프로젝트를 빌드 할 때마다 QT를 모두 다시 컴파일해야 할 필요가 있습니까?
업데이트! 여기에서 도움을 받아 QT를 정적으로 컴파일하고 우분투에서 바이너리로 묶습니다. 내 문제는 지금은 OpenCV의 다음 2.4.2
의 정적 버전으로 컴파일 할 때 나는 그런
":-1: error: error: avformat: No such file or directory"
같은 오류를 얻을 수 있다는 것은 내가 무슨 짓을했는지 :
는나를 위해 트릭은 파악했다 "path/to/qt"가 의미하는 것과 "-prefix"다음에 넣을 내용 Suslik의 링크는 나를 이렇게 안내합니다 : github.com/refuge/whitesheep/wiki/Compiling-Qt-statically 이것은 거의 똑같은 것이지만 모든 것을 얻으려는 정확한 정확한 구문을 파악하는 것을 도왔습니다. 마지막에 을 다운로드하고 압축을 풀고이 폴더로 "path/to/qt"를 사용하여 명령을 실행해야합니다. 따라서 내 명령은 내가 "프로젝트가> BuildSettings> 추가를"나는 "staticrelease"로 설정이 새로운 빌드를 호출 선택 QtCreator에서이
cd /home/biotracking/qt-everywhere-opensource-src-4.8.2
./configure -static -prefix /home/biotracking/qt-everywhere-opensource-src-4.8.2
다음처럼 보였다. "Qt 버전 :"에서 관리를 선택하고 새로운 qmake 파일을 저장하고 선택하는 "qt-everywhere-opensource-src-4.8.2"안의 bin 폴더를 찾습니다. 이제 QT는 QT의 정적 버전을 사용하여 좋은 이진 파일을 만듭니다. (더 이상 오래 걸리지 않습니다. 멋진 데요!)
그런 다음 내 Qt에서 내 .pro 파일로 이동해야했습니다. -OpenCv 프로젝트에 다음과 같은 정적 명령을 추가하십시오.
QT += core gui
TARGET = AntennateSRC
TEMPLATE = app
CONFIG+=static
QMAKE_LFLAGS += -static
QMAKE_LFLAGS += -static-libgcc
static{
DEFINES += STATIC
}
unix {
CONFIG += link_pkgconfig
PKGCONFIG += opencv
PKGCONFIG += pcl_io-1.6
#PKGCONFIG += pcl_libraries
}
SOURCES += main.cpp\
antennate.cpp \
Track.cpp \
ICPTracker.cpp
HEADERS += antennate.h \
Track.h \
ICPTracker.h
FORMS += antennate.ui
RESOURCES += antennate.qrc \
이것은 내가 막힐 곳입니다. opencv 2.4.2의 정적 버전을 컴파일하고 (cmake-gui에서 BUILD_SHARED_LIBS를 해제), 이전 버전의 opencv를 제거하고이 버전을 설치했습니다. 지금은 9 이상한 오류가 아직까지 우리에 관한 한 그 거대한 아니다 13.9 MB, 대 604킬로바이트의 distributables의 크기
:-1: error: error: swscale: No such file or directory
PS.The 차이처럼 얻을.
나는 그것을 확인하고 어떻게되는지보고 있습니다! 조언 해주셔서 감사합니다! 또한 예, 우리가하는 모든 일은 전적으로 오픈 소스이므로 소스 코드를 무료로 사용할 수 있습니다. 감사! – blorgggg
@blorgggg 리눅스에 배포 할 때 가치있는 일이라면 사용자가 qt를 정적으로 링크하지 않도록하는 것이 좋습니다 (debs 및 rpms를 사용하면 패키지 관리자에게 의존하여 얻을 수 있습니다). 당신을 위해). 이렇게하면 배포 가능 용량을 줄일 수 있습니다. – MrFox
고마워, 그래도 우리는 가능성이 있다고 생각하고있다. 604kb 대 13.9MB의 배포판 크기의 차이처럼 보이지만, 여전히 우리가 우려하는만큼 크지는 않다. 우리 고객 (NSF 보조금으로 일하는 곤충 과학자)이 파일 크기가 약간 큰 것은 신경 쓰지 않고 다운로드하고 클릭하면 작동합니다! 또한, 우리는 mac 같은 복수의 시스템에 전달하고자하므로 – blorgggg