2017-03-03 24 views
0

Qt5를 사용하여 OpenSplice의 튜토리얼 예제를 실행하려고합니다. 나는 프로그램을 성공적으로 구축하지만 난 그것을 실행할 때 다음과 같은 오류 얻을 : 내가 온 많은 디버깅 단계 후 잘못된 핸들Qt5 실행 오류가있는 OpenSplice 생성 실패 : 잘못된 핸들

: DDS :: DomainParticipantFactory에서

오류 :: create_participant : 창조 실패를 내 실행 파일이 내 ospl에 연결되지 않는다는 결론에 도달했습니다! 나는 그것이 밖으로 충돌 할 때 어떤 ospl-error.log도 생성되지 않기 때문에 그것을 알았다.

내가 제대로 . ./release.com 릴리스 파일을 공급하고 모든 환경 변수가 올바르게 (특히 OSPL_URIOSPL_HOME)

사람이이 문제를 해결하는 방법에 대한 어떤 생각을 가지고 있습니까 설정되도록 같은 터미널에서 내 qtcreator를 시작?

+0

오류는 코드가 ospl에 연결할 수 없음을 나타냅니다. 단일 프로세스 모델을 사용하고 있습니까? (여기서 ospl은 응용 프로그램의 일부입니다)? 그렇지 않으면 ospl start를 통해 ospl deamon 프로세스를 시작해야합니다. – tssch

+0

두 모델 모두 테스트를 거쳤으며 동일한 오류가 발생했습니다 ... –

답변

0

마침내이 문제를 해결할 수 있었으며 답을 공유 할 생각이 들었습니다. 지금은 프로그램이 요구하는 libs와 최소한의를 사용하고 지금은 완벽하게 실행

unix:!macx: LIBS += -L$$PWD/../../PrismTech/Vortex_v2/Device/VortexOpenSplice/6.7.1/HDE/x86_64.linux/lib/ -lcmagent -lcmjni -lcmsoap -lcmxml -ldbmsconnect -ldcpsc99 -ldcpsccpp -ldcpsgapi -ldcpsisocpp -ldcpsisocpp2 -ldcpssac -ldcpssacpp -ldcpssaj -lddsconf -lddsconfparser -lddsdatabase -lddshts -lddsi2 -lddsi2e -lddskernel -lddsos -lddsosnet -lddsrmi -lddsrrstorage -lddsserialization -lddsuser -lddsutil -ldurability -lfacecpp -lleveldb-ospl -llzf-ospl -lnetworking -lnwbridge -lrlm913 -lrnr -lsigar-amd64-linux -lsnappy-ospl -lsnetworking -lspliced -lsqlite3-ospl -lstreamsccpp -lstreamsisocpp -lstreamssacpp 

INCLUDEPATH += $$PWD/../../PrismTech/Vortex_v2/Device/VortexOpenSplice/6.7.1/HDE/x86_64.linux/include 
DEPENDPATH += $$PWD/../../PrismTech/Vortex_v2/Device/VortexOpenSplice/6.7.1/HDE/x86_64.linux/include 

: 문제는 내가 나의 .PRO 나는 다음과 같은 libs와 포함 된 모든 DDS libs와 포함 된 것이 었습니다. 다음은 지금 사용하고있는 내용입니다.

unix:!macx: LIBS += -L$$PWD/../PrismTech/Vortex_v2/Device/VortexOpenSplice/6.7.1/HDE/x86_64.linux/lib/ -lddskernel -ldcpsisocpp 

INCLUDEPATH += $$PWD/../PrismTech/Vortex_v2/Device/VortexOpenSplice/6.7.1/HDE/x86_64.linux/include 
DEPENDPATH += $$PWD/../PrismTech/Vortex_v2/Device/VortexOpenSplice/6.7.1/HDE/x86_64.linux/include 

실제로 오류는 -ldcpsccpp 및 -lddshts 때문에 발생합니다. 해당 libs 제거하여 응용 프로그램이 완벽하게 작동합니다.