Closed. This question needs debugging details。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

5年前关闭。



Improve this question




我在使用OpenANN编译一些c++代码时遇到问题。
我想知道您能否帮我,这是make的日志:
log

我已经安装了他对OpenANN的依赖关系。

链接错误:

g++ -std = c++ 11 -O3 main.cpp -I/usr/include/eigen3 -L/usr/include/OpenANN -L/usr/lib -lutil -lboost_system -lboost_filesystem -lboost_iostreams -o Bot.out:

/tmp/cc78iiwc.o:dans la fonction«Brain::ComputeTarget(Brain::MemCell const&)»:
main.cpp :(。text._ZN5Brain13ComputeTargetERKNS_7MemCellE [_ZN5Brain13ComputeTargetERKNS_7MemCellE] + 0xa7):引用索引«OpenANN::Net::operator()(Eigen::Matrix const&)»
main.cpp :(。text._ZN5Brain13ComputeTargetERKNS_7MemCellE [_ZN5Brain13ComputeTargetERKNS_7MemCellE] + 0x18d):引用声明«OpenANN::Net::operator()(Eigen::Matrix const&)»
/tmp/cc78iiwc.o:dans la fonction«main»:
main.cpp :(。text.startup + 0x2cf):引用文献«OpenANN::Net::operator()(Eigen::Matrix const&)»
main.cpp :(。text.startup + 0xa16):引用索引«OpenANN::DirectStorageDataSet::DirectStorageDataSet(Eigen::Matrix *,Eigen::Matrix *,OpenANN::Evaluator *)»
main.cpp :(。text.startup + 0xa2f):引用文献«OpenANN::Learner::trainingSet(OpenANN::DataSet&)»
main.cpp :(。text.startup + 0xa3c):引用文献«OpenANN::StoppingCriteria::StoppingCriteria()»
main.cpp :(。text.startup + 0xa8d):引用文献«OpenANN::train(OpenANN::Net&,std::string,OpenANN::ErrorFunction,OpenANN::StoppingCriteria const&,bool,bool)»
main.cpp :(。text.startup + 0xbf4):引用文献«OpenANN::Net::save(std::string const&)»
main.cpp :(。text.startup + 0xfd5):引用文献«OpenANN::Net::operator()(Eigen::Matrix const&)»
main.cpp :(。text.startup + 0x1064):引用文献«OpenANN::Net::operator()(Eigen::Matrix const&)»
main.cpp :(。text.startup + 0x11f6):引用索引«OpenANN::DirectStorageDataSet::DirectStorageDataSet(Eigen::Matrix *,Eigen::Matrix *,OpenANN::Evaluator *)»
main.cpp :(。text.startup + 0x120f):引用文献«OpenANN::Learner::trainingSet(OpenANN::DataSet&)»
main.cpp :(。text.startup + 0x121c):引用文献«OpenANN::StoppingCriteria::StoppingCriteria()»
main.cpp :(。text.startup + 0x126d):引用文献«OpenANN::train(OpenANN::Net&,std::string,OpenANN::ErrorFunction,OpenANN::StoppingCriteria const&,bool,bool)»
main.cpp :(。text.startup + 0x15f6):引用索引«OpenANN::DirectStorageDataSet::DirectStorageDataSet(Eigen::Matrix *,Eigen::Matrix *,OpenANN::Evaluator *)»
main.cpp :(。text.startup + 0x160f):引用文献«OpenANN::Learner::trainingSet(OpenANN::DataSet&)»
main.cpp :(。text.startup + 0x161c):引用文献«OpenANN::StoppingCriteria::StoppingCriteria()»
main.cpp :(。text.startup + 0x166d):早期版本«OpenANN::train(OpenANN::Net&,std::string,OpenANN::ErrorFunction,OpenANN::StoppingCriteria const&,bool,bool)»
main.cpp :(。text.startup + 0x1900):引用文献«OpenANN::Net::〜Net()»
/tmp/cc78iiwc.o:dans la fonction«Brain::Brain()»:
main.cpp :(。text._ZN5BrainC2Ev [_ZN5BrainC5Ev] + 0x37):引用自主声明«OpenANN::Net::Net()»
main.cpp :(。text._ZN5BrainC2Ev [_ZN5BrainC5Ev] + 0x58):引用索引«OpenANN::Net::load(std::string const&)»
main.cpp :(。text._ZN5BrainC2Ev [_ZN5BrainC5Ev] + 0x115):引用自主声明«OpenANN::Net::inputLayer(int,int,int)»
main.cpp :(。text._ZN5BrainC2Ev [_ZN5BrainC5Ev] + 0x134):引用声明«OpenANN::Net::fullyConnectedLayer(int,OpenANN::ActivationFunction,double,bool)»
main.cpp :(。text._ZN5BrainC2Ev [_ZN5BrainC5Ev] + 0x153):引用声明«OpenANN::Net::outputLayer(int,OpenANN::ActivationFunction,double,bool)»
main.cpp :(。text._ZN5BrainC2Ev [_ZN5BrainC5Ev] + 0x16d):引用索引«OpenANN::Net::〜Net()»
collect2:erreur:ldretourné1 code d'étatd'execution
Makefile:6:将“测试”倒入冰壶中
制造:*** [测试] Erreur 1

最佳答案

您的编译命令是错误的。



链接选项-L-l具有两个不同的角色:

  • -L表示在查找库时要考虑目录
  • -l表示与此库
  • 链接

    如果您仔细查看传递的有关OpenANN的标志,您会意识到,您指示g++也在搜索库时也查看/usr/include/OpenANN目录,但从未实际指示它链接到OpenANN库。

    如果未指示g++将程序/库与OpenANN库链接,则不会,并且您将获得 undefined symbol 。

    10-06 10:16