簡體   English   中英

FIWARE- Orion上下文代理

[英]FIWARE- Orion Context Broker

我試圖在Alien的Ubuntu 14.04上安裝Orion上下文代理,但是當我啟動contextBroker時,它說:

contextBroker:加載共享庫時出錯:libboost_thread-mt.so.5:無法打開共享庫文件:沒有這樣的文件或目錄

我找不到錯誤在哪里,然后嘗試使用Git中的指令安裝所有依賴項,但是當我嘗試執行make時會出錯:

[26%]構建CXX對象src / lib / serviceRoutines / CMakeFiles / serviceRoutines.dir / exitTreat.cpp.o在/home/sistemas/fiware-orion-develop/src/lib/serviceRoutines/exitTreat.cpp:32中包含的文件中:0:/home/sistemas/fiware-orion-develop/src/lib/mongoBackend/MongoGlobal.h:30:35:致命錯誤:mongo / client / dbclient.h:不存在文件或目錄#include“ mongo /client/dbclient.h”

我已經安裝了mongo的驅動程序,該如何解決?

最后,我從https://github.com/mongodb/mongo-cxx-driver/releases編譯了一個新的驅動程序,它繼續編譯直到:

*

/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp: In function ‘void recoverOnTimeIntervalThread(std::string, mongo::BSONObj&)’:
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:532:40: error: ‘class mongo::OID’ has no member named ‘str’
   std::string  subId   = idField.OID().str();
                                        ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp: In function ‘void destroyOnTimeIntervalThread(std::string, mongo::BSONObj&)’:
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:583:40: error: ‘class mongo::OID’ has no member named ‘str’
   std::string  subId   = idField.OID().str();
                                        ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp: In function ‘void releaseTriggeredSubscriptions(std::map<std::basic_string<char>, TriggeredSubscription*>&)’:
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:17: error: ‘string’ was not declared in this scope
   for (std::map<string, TriggeredSubscription*>::iterator it = subs.begin(); it != subs.end(); ++it)
                 ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:17: note: suggested alternative:
In file included from /usr/include/c++/4.9/iosfwd:39:0,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:49,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/mongo/client/dbclient_rs.h:20,
                 from /usr/include/mongo/client/dbclient.h:59,
                 from /home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:27:
/usr/include/c++/4.9/bits/stringfwd.h:62:33: note:   ‘std::string’
   typedef basic_string<char>    string;   
                                 ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:47: error: template argument 1 is invalid
   for (std::map<string, TriggeredSubscription*>::iterator it = subs.begin(); it != subs.end(); ++it)
                                               ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:47: error: template argument 3 is invalid
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:47: error: template argument 4 is invalid
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:59: error: invalid type in declaration before ‘it’
   for (std::map<string, TriggeredSubscription*>::iterator it = subs.begin(); it != subs.end(); ++it)
                                                           ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:59: error: expected ‘;’ before ‘it’
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:59: error: ‘it’ was not declared in this scope
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:94: error: expected ‘)’ before ‘;’ token
   for (std::map<string, TriggeredSubscription*>::iterator it = subs.begin(); it != subs.end(); ++it)

/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:50: error: unused variable ‘iterator’ [-Werror=unused-variable]
   for (std::map<string, TriggeredSubscription*>::iterator it = subs.begin(); it != subs.end(); ++it)
                                                  ^
/home/sistemas/fiware-orion/src/lib/mongoBackend/MongoGlobal.cpp:1911:98: error: ‘it’ was not declared in this scope
   for (std::map<string, TriggeredSubscription*>::iterator it = subs.begin(); it != subs.end(); ++it)
                                                                                                  ^
cc1plus: all warnings being treated as errors
make[3]: *** [src/lib/mongoBackend/CMakeFiles/mongoBackend.dir/MongoGlobal.cpp.o] Error 1
make[3]: se sale del directorio «/home/sistemas/fiware-orion/BUILD_RELEASE»
make[2]: *** [src/lib/mongoBackend/CMakeFiles/mongoBackend.dir/all] Error 2
make[2]: *** Se espera a que terminen otras tareas....
[ 88%] Building CXX object src/lib/xmlParse/CMakeFiles/xmlParse.dir/xmlRegisterProviderRequest.cpp.o

*

Orion Context Broker文件中有問題嗎?

我認為這可能是de mongo的驅動程序再次出現問題,但我嘗試安裝另一台較舊的驅動程序,但它不起作用。 我還認為de-mt庫可能是個問題,boss中不再存在它,但是直到現在我都沒有嘗試。

我已經使用Ubuntu 14.04 LTS作為主機安裝了Orion CB。 我還發現libboost_thread-mt.so庫存在一些問題。 這樣解決:

獲取並安裝軟件包boost-thread-1.41.0-25.el6.x86_64.rpm boost-system-1.41.0-25.el6.x86_64.rpm boost-filesystem-1.41.0-25.el6.x86_64.rpm

並使用外星人安裝它們。 然后,將庫安裝在“ / usr / lib64”文件夾中。 要解決此問題(CB可以找到它們):在“ /etc/ld.so.conf.d/”中創建一個.conf文件,在其中添加一行(“ / usr / lib64”)並保存並退出並通過調用(“ sudo ldconfig”)重新加載配置

希望這可以幫助

因此,這里有兩個問題合而為一。 讓我們從第一個開始,關於找不到共享庫:

使用“ ldd $(哪一個contextBroker)| grep boost_thread)詢問代理應該在哪里。運行此命令后,請確保該庫在那里。如果沒有,但是您在其他地方有它,則應該能夠使用env var LD_LIBRARY_PATH指向找到該庫的目錄。

現在,對於第二個問題,找不到mongo驅動程序包含。 在我的機器上,我將它們放在/ usr / local / include / mongo =>中,可以使用-I / usr / local / include編譯器指令。 如果您在其他位置安裝了mongo驅動程序,則可能需要為編譯添加另一個“ include-directory”。 這將在頂級CMakeLists.txt中完成(我想使用'include_directories'-我距離cmake專家還很遠:-))。 構建時,要查看詳細信息,請按以下方式進行編譯:

%CPU_COUNT = 1 VERBOSE = 1進行安裝

除非您設法解決問題,否則在此處再次發布信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM