2017-03-03 61 views
0

我想使用Qt5運行OpenSplice的教程示例。我成功地構建了程序,但是當我運行它,我得到以下錯誤:OpenSplice與Qt5執行錯誤創建失敗:無效句柄

錯誤DDS :: DomainParticipantFactory :: create_participant:創建 失敗:無效的句柄

後,我來到了很多的調試步驟得出的結論是我的可執行文件沒有鏈接到我的ospl!我明白,因爲當它崩潰時,不會生成ospl-error.log。

我正確. ./release.com源發佈文件,並從同一個終端開始了我的qtcreator因此,所有的環境變量設置正確(特別是OSPL_URIOSPL_HOME

有沒有人對如何解決這一問題的任何想法?

+0

該錯誤表明您的代碼無法連接到ospl。您是否使用單一流程模型(其中ospl是您應用程序的一部分)?否則,你需要通過ospl start來啓動ospl deamon進程。 – tssch

+0

我使用兩種模型進行了測試,並得到相同的錯誤... –

回答

0

我終於設法解決了這個問題,並想到分享答案。 的問題是,我是包括所有的DDS庫在我的.pro我包括以下庫:

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 

我現在用最少的一組庫的該程序需要,現在它運行完美。這裏是我現在使用的:

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造成的。通過刪除這些庫,應用程序完美地工作。

相關問題