我试着用Alien在Ubuntu14.04上安装Orion,但是当我使用contextBroker启动时,它说:
contextBroker:加载共享库时出错:libboost_线程-mt.so.5:无法打开共享对象文件:没有这样的文件或目录
我找不到错误在哪里,于是我尝试安装Git中的指令中的所有依赖项,但是当我尝试执行make时,它会出错:
26%在包含在/home/sistemas/fiware-orion-develop/src/lib/serviceRoutines/exitTreat.cpp:32:0: /home/sistemas/fiware-orion-develop/src/lib/mongoBackend/MongoGlobal.h:30:35:致命错误中的文件中构建CXX对象/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“
我已经安装了芒果的驱动程序,我该怎么解决呢?
最后,我从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上下文代理的文件中有问题吗?
我认为这可能是一个问题德蒙戈的驱动程序,但我试图安装另一个旧的,但它不工作。我还认为,de -mt库可能是一个问题,它不再存在于boost中,但直到现在我都没有尝试过。
发布于 2015-03-18 09:54:12
我已经安装Orion使用Ubuntu14.04LTS作为主机。我还发现libboost_lind-mt.so库存在一些问题。以这种方式解决:
获取和安装软件包boost-线程-1.41.0-25.el6.x86_64.rpm boost-系统-1.41.0-25.el6.x86_64.rpm boost-文件系统-1.41.0-25.el6.x86_64.rpm
然后用外星人安装它们。然后,库被安装在“/usr/lib64 64”文件夹中。要纠正这个问题( CB能够找到它们):在“/etc/ld.so.con.d/”中创建一个.conf文件,在其中添加一行(“/usr/ line 64”)并保存它,然后通过调用(“sudo”)退出并重新加载配置。
希望这能有所帮助
发布于 2015-03-11 09:02:17
所以,这里我们有两个问题在一个。让我们从第一个问题开始,关于未找到的共享库:
使用"ldd $(其中的contextBroker) \ grep boost_thread)询问代理库应该在哪里。在运行此命令之后,请确保库在那里。如果它不在,但在其他地方,您应该能够使用env var LD_LIBRARY_PATH来指向找到库的目录。
现在,对于第二个问题,蒙戈司机包括在内是找不到。在我的机器中,我将它们放在/usr/local/include/mongo =>中,我可以使用编译器的=>指令。如果您在其他地方安装了mongo驱动程序,则可能需要为编译添加另一个“include-目录”。这将在顶级的CMakeLists.txt中完成(我猜使用'include_directories‘-我不是一个cmake专家:-))。在构建时,要查看详细信息,请按以下方式编译:
% CPU_COUNT=1 VERBOSE=1 make安装
在这里再次发布信息,除非你设法解决你的问题。
https://stackoverflow.com/questions/28964985
复制相似问题