我已编制静脉,vanetza,inet和动脉,但我无法启动Artery示例。在Artery根目录下,我执行了以下操作:
cd build make run_example
发生以下错误:
<!> Error: Cannot load library '/home/renault/artery/build/src/artery/envmod/libartery_envmod.so': /usr/local/lib/libvanetza_security.so: undefined symbol: _ZN8CryptoPP10RandomPool34GenerateIntoBufferedTransformationERNS_22BufferedTransformationERKSsy
End.
scenarios/artery/CMakeFiles/run_example.dir/build.make:57: recipe for target 'scenarios/artery/CMakeFiles/run_example' failed
make[3]: *** [scenarios/artery/CMakeFiles/run_example] Error 1
CMakeFiles/Makefile2:644: recipe for target 'scenarios/artery/CMakeFiles/run_example.dir/all' failed
make[2]: *** [scenarios/artery/CMakeFiles/run_example.dir/all] Error 2
CMakeFiles/Makefile2:651: recipe for target 'scenarios/artery/CMakeFiles/run_example.dir/rule' failed
make[1]: *** [scenarios/artery/CMakeFiles/run_example.dir/rule] Error 2
Makefile:274: recipe for target 'run_example' failed
make: *** [run_example] Error 2
我在安装了crypto ++ 5.6.1的ubuntu上
由于
答案 0 :(得分:1)
错误消息告诉您无法找到给定的符号。使用c++filt
,您可以发现符号如下:
CryptoPP::RandomPool::GenerateIntoBufferedTransformation(CryptoPP::BufferedTransformation&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long long)
这可能表明你在某个地方声明了这个方法 - 可能是在头文件中 - 但没有为它提供实现(在相应的.cc
文件中)。
另见: