繁体   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