Linux: How to find functions from lib .so files?
Solution 1: to find functions from one lib .so file:
Example file /usr/local/lib/libopencv_ml.so
nm -C /usr/local/lib/libopencv_ml.so
Result:
... 00000000002b71c0 d vtable for cv::ml::BruteForceImpl 00000000002b6b80 d vtable for cv::ml::DTreesImplForBoost 00000000002b5520 V vtable for cv::ml::LogisticRegression 00000000002b5e40 d vtable for cv::ml::DTreesImplForRTrees 00000000002b67c0 V vtable for cv::ml::NormalBayesClassifier 00000000002b5620 d vtable for cv::ml::LogisticRegressionImpl 00000000002b6860 d vtable for cv::ml::NormalBayesClassifierImpl::NBPredictBody 00000000002b68a0 d vtable for cv::ml::NormalBayesClassifierImpl 00000000002b7a40 V vtable for cv::ml::EM 00000000002b6300 V vtable for cv::ml::SVM::Kernel 00000000002b6360 V vtable for cv::ml::SVM 00000000002b7140 d vtable for cv::ml::Impl 00000000002b6a00 V vtable for cv::ml::Boost 00000000002b5b80 V vtable for cv::ml::DTrees 00000000002b7b40 V vtable for cv::ml::EMImpl 00000000002b5cc0 V vtable for cv::ml::RTrees 00000000002b57e0 V vtable for cv::ml::ANN_MLP 00000000002b6520 d vtable for cv::ml::SVMImpl::PredictBody 00000000002b6560 d vtable for cv::ml::SVMImpl 00000000002b7060 V vtable for cv::ml::KNearest 00000000002b6da0 d vtable for cv::ml::BoostImpl 00000000002b7ca0 V vtable for cv::ml::StatModel 00000000002b7720 V vtable for cv::ml::TrainData 00000000002b7660 d vtable for cv::detail::PtrOwnerImpl<cv::ml::DTreesImpl::WorkData, cv::DefaultDeleter<cv::ml::DTreesImpl::WorkData> > 00000000002b76a0 d vtable for cv::detail::PtrOwnerImpl<cv::ml::DTreesImpl, cv::DefaultDeleter<cv::ml::DTreesImpl> > 00000000002b7360 d vtable for cv::detail::PtrOwnerImpl<cv::ml::KDTreeImpl, cv::DefaultDeleter<cv::ml::KDTreeImpl> > 00000000002b61e0 d vtable for cv::detail::PtrOwnerImpl<cv::ml::RTreesImpl, cv::DefaultDeleter<cv::ml::RTreesImpl> > 00000000002b5aa0 d vtable for cv::detail::PtrOwnerImpl<cv::ml::ANN_MLPImpl, cv::DefaultDeleter<cv::ml::ANN_MLPImpl> > 00000000002b73a0 d vtable for cv::detail::PtrOwnerImpl<cv::ml::KNearestImpl, cv::DefaultDeleter<cv::ml::KNearestImpl> > 00000000002b66c0 d vtable for cv::detail::PtrOwnerImpl<cv::ml::SVMKernelImpl, cv::DefaultDeleter<cv::ml::SVMKernelImpl> > 00000000002b79a0 d vtable for cv::detail::PtrOwnerImpl<cv::ml::TrainDataImpl, cv::DefaultDeleter<cv::ml::TrainDataImpl> > 00000000002b7320 d vtable for cv::detail::PtrOwnerImpl<cv::ml::BruteForceImpl, cv::DefaultDeleter<cv::ml::BruteForceImpl> > 00000000002b5720 d vtable for cv::detail::PtrOwnerImpl<cv::ml::LogisticRegressionImpl, cv::DefaultDeleter<cv::ml::LogisticRegressionImpl> > 00000000002b6940 d vtable for cv::detail::PtrOwnerImpl<cv::ml::NormalBayesClassifierImpl, cv::DefaultDeleter<cv::ml::NormalBayesClassifierImpl> > 00000000002b7c40 d vtable for cv::detail::PtrOwnerImpl<cv::ml::EMImpl, cv::DefaultDeleter<cv::ml::EMImpl> > 00000000002b6700 d vtable for cv::detail::PtrOwnerImpl<cv::ml::SVMImpl, cv::DefaultDeleter<cv::ml::SVMImpl> > 00000000002b6f20 d vtable for cv::detail::PtrOwnerImpl<cv::ml::BoostImpl, cv::DefaultDeleter<cv::ml::BoostImpl> > 00000000002b54e0 d vtable for cv::detail::PtrOwner 00000000000a5532 r cv::ml::DTreesImpl::findBestSplit(std::vector<int, std::allocator<int> > const&)::__func__ 00000000000a556a r cv::ml::DTreesImpl::startTraining(cv::Ptr<cv::ml::TrainData> const&, int)::__func__ 00000000000a555b r cv::ml::DTreesImpl::initCompVarIdx()::__func__ 00000000000a5520 r cv::ml::DTreesImpl::findSplitCatClass(int, std::vector<int, std::allocator<int> > const&, double, int*)::__func__ 00000000000a5540 r cv::ml::DTreesImpl::addNodeAndTrySplit(int, std::vector<int, std::allocator<int> > const&)::__func__ 00000000000a5490 r cv::ml::DTreesImpl::read(cv::FileNode const&)::__func__ 00000000000a5553 r cv::ml::DTreesImpl::addTree(std::vector<int, std::allocator<int> > const&)::__func__ 00000000000a5517 r cv::ml::DTreesImpl::calcDir(int, std::vector<int, std::allocator<int> > const&, std::vector<int, std::allocator<int> >&, std::vector<int, std::allocator<int> >&)::__func__ 00000000000a5495 r cv::ml::DTreesImpl::readSplit(cv::FileNode const&)::__func__ 00000000000a3eb6 r cv::ml::TreeParams::setCVFolds(int)::__func__ 00000000000a4ed6 r cv::ml::TreeParams::setCVFolds(int)::__func__ 00000000000a5596 r cv::ml::TreeParams::setCVFolds(int)::__func__ 00000000000a3ec1 r cv::ml::TreeParams::setMaxDepth(int)::__func__ 00000000000a4ee1 r cv::ml::TreeParams::setMaxDepth(int)::__func__ 00000000000a55a1 r cv::ml::TreeParams::setMaxDepth(int)::__func__ 00000000000a3ed0 r cv::ml::TreeParams::setMaxCategories(int)::__func__ 00000000000a4ef0 r cv::ml::TreeParams::setMaxCategories(int)::__func__ 00000000000a55b0 r cv::ml::TreeParams::setMaxCategories(int)::__func__ 00000000000a3ea0 r cv::ml::TreeParams::setRegressionAccuracy(float)::__func__ 00000000000a4ec0 r cv::ml::TreeParams::setRegressionAccuracy(float)::__func__ 00000000000a5580 r cv::ml::TreeParams::setRegressionAccuracy(float)::__func__ 00000000000a3b2b r cv::ml::ANN_MLPImpl::read_params(cv::FileNode const&)::__func__ 00000000000a3b69 r cv::ml::ANN_MLPImpl::train_rprop(cv::Mat const&, cv::Mat const&, cv::Mat const&, cv::TermCriteria)::__func__ 00000000000a3bd8 r cv::ml::ANN_MLPImpl::setLayerSizes(cv::_InputArray const&)::__func__ 00000000000a3ba0 r cv::ml::ANN_MLPImpl::prepare_to_train(cv::Mat const&, cv::Mat const&, cv::Mat&, int)::__func__ 00000000000a3b80 r cv::ml::ANN_MLPImpl::calc_output_scale(cv::Mat const&, int)::__func__ 00000000000a3bf0 r cv::ml::ANN_MLPImpl::setActivationFunction(int, double, double)::__func__ 00000000000a624f r cv::ml::randMVNormal(cv::_InputArray const&, cv::_InputArray const&, int, cv::_OutputArray const&)::__func__ 00000000000a47f6 r cv::ml::SVMKernelImpl::calc(int, int, float const*, float const*, float*)::__func__ 00000000000a5d50 r cv::ml::TrainDataImpl::shuffleTrainTest()::__func__ 00000000000a5d70 r cv::ml::TrainDataImpl::setTrainTestSplit(int, bool)::__func__ 00000000000a5ce0 r cv::ml::TrainDataImpl::preprocessCategorical(cv::Mat const&, cv::Mat*, std::vector<int, std::allocator<int> >&, std::vector<int, std::allocator<int> >*, std::vector<int, std::allocator<int> >&)::__func__ 00000000000a5d90 r cv::ml::TrainDataImpl::setTrainTestSplitRatio(double, bool)::__func__ 00000000000a5d12 r cv::ml::TrainDataImpl::loadCSV(cv::String const&, int, int, int, cv::String const&, char, char)::__func__ 00000000000a5cfa r cv::ml::TrainDataImpl::setData(cv::_InputArray const&, int, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&, cv::_InputArray const&)::__func__ 00000000000a4ea0 r cv::ml::DTreesImplForBoost::updateWeightsAndTrim(int, std::vector<int, std::allocator<int> >&)::__func__ 00000000000a4e70 r cv::ml::DTreesImplForBoost::read(cv::FileNode const&)::__func__ 00000000000a3e70 r cv::ml::DTreesImplForRTrees::read(cv::FileNode const&)::__func__ 00000000000a3581 r cv::ml::LogisticRegressionImpl::compute_cost(cv::Mat const&, cv::Mat const&, cv::Mat const&)::__func__ 00000000000a3570 r cv::ml::LogisticRegressionImpl::compute_gradient(cv::Mat const&, cv::Mat const&, cv::Mat const&, double, cv::Mat&)::__func__ 00000000000a3550 r cv::ml::LogisticRegressionImpl::batch_gradient_descent(cv::Mat const&, cv::Mat const&, cv::Mat const&)::__func__ 00000000000a3530 r cv::ml::LogisticRegressionImpl::mini_batch_gradient_descent(cv::Mat const&, cv::Mat const&, cv::Mat const&)::__func__ 00000000000a34f0 r cv::ml::LogisticRegressionImpl::read(cv::FileNode const&)::__func__ 00000000000a35a4 r cv::ml::LogisticRegressionImpl::train(cv::Ptr<cv::ml::TrainData> const&, int)::__func__ 00000000000a4b11 r cv::ml::NormalBayesClassifierImpl::read(cv::FileNode const&)::__func__ 00000000000a4b3c r cv::ml::NormalBayesClassifierImpl::train(cv::Ptr<cv::ml::TrainData> const&, int)::__func__ 00000000000a62c0 r cv::ml::createConcentricSpheresTestSet(int, int, int, cv::_OutputArray const&, cv::_OutputArray const&)::__func__ 00000000000a5050 r cv::ml::Impl::train(cv::Ptr<cv::ml::TrainData> const&, int)::__func__ 00000000000a6080 r cv::ml::EMImpl::read_params(cv::FileNode const&)::__func__ 00000000000a60f7 r cv::ml::EMImpl::decomposeCovs()::__func__ 00000000000a612c r cv::ml::EMImpl::checkTrainData(int, cv::Mat const&, int, int, cv::Mat const*, cv::Mat const*, std::vector<cv::Mat, std::allocator<cv::Mat> > const*, cv::Mat const*)::__func__ 00000000000a6160 r cv::ml::EMImpl::setClustersNumber(int)::__func__ 00000000000a6110 r cv::ml::EMImpl::clusterTrainSamples()::__func__ 00000000000a60e0 r cv::ml::EMImpl::computeLogWeightDivDet()::__func__ 00000000000a6140 r cv::ml::EMImpl::setCovarianceMatrixType(int)::__func__ 00000000000a6124 r cv::ml::EMImpl::doTrain(int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&)::__func__ 00000000000a4dd0 r cv::ml::KDTree::build(cv::_InputArray const&, cv::_InputArray const&, bool)::__func__ 00000000000a47e0 r cv::ml::SVMImpl::checkParams()::__func__ 00000000000a471e r cv::ml::SVMImpl::read_params(cv::FileNode const&)::__func__ 00000000000a472a r cv::ml::SVMImpl::read(cv::FileNode const&)::__func__ 00000000000a47ec r cv::ml::SVMImpl::train(cv::Ptr<cv::ml::TrainData> const&, int)::__func__ 00000000000a47b5 r cv::ml::SVMImpl::Solver::solve_nu_svr(cv::Mat const&, std::vector<float, std::allocator<float> > const&, double, double, cv::Ptr<cv::ml::SVM::Kernel> const&, std::vector<double, std::allocator<double> >&, cv::ml::SVMImpl::Solver::SolutionInfo&, cv::TermCriteria)::__func__ 00000000000a47c2 r cv::ml::SVMImpl::Solver::solve_eps_svr(cv::Mat const&, std::vector<float, std::allocator<float> > const&, double, double, cv::Ptr<cv::ml::SVM::Kernel> const&, std::vector<double, std::allocator<double> >&, cv::ml::SVMImpl::Solver::SolutionInfo&, cv::TermCriteria)::__func__ 00000000000a47d0 r cv::ml::SVMImpl::Solver::Solver(cv::Mat const&, std::vector<signed char, std::allocator<signed char> > const&, std::vector<double, std::allocator<double> >&, std::vector<double, std::allocator<double> > const&, double, double, cv::Ptr<cv::ml::SVM::Kernel> const&, float* (cv::ml::SVMImpl::Solver::*)(int, float*, float*, bool), bool (cv::ml::SVMImpl::Solver::*)(int&, int&), void (cv::ml::SVMImpl::Solver::*)(double&, double&), cv::TermCriteria)::__func__ 00000000000a47d7 r cv::ml::SVMImpl::do_train(cv::Mat const&, cv::Mat const&)::__func__ 00000000000a4796 r cv::ml::SVMImpl::trainAuto(cv::Ptr<cv::ml::TrainData> const&, int, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, cv::ml::ParamGrid, bool)::__func__ 00000000000a625c r cv::ml::StatModel::train(cv::Ptr<cv::ml::TrainData> const&, int)::__func__ 00000000000a5db3 r cv::ml::TrainData::getSubVector(cv::Mat const&, cv::Mat const&)::__func__ 00000000000a4787 r cv::ml::checkParamGrid(cv::ml::ParamGrid const&)::__func__ 00000000000a4dc0 r cv::ml::medianPartition(unsigned long*, int, int, float const*)::__func__ 00000000000a47a0 r cv::ml::sortSamplesByClasses(cv::Mat const&, cv::Mat const&, std::vector<int, std::allocator<int> >&, std::vector<int, std::allocator<int> >&)::__func__ 00000000000a6246 r cv::ml::Cholesky(cv::Mat const&, cv::Mat&)::__func__ 00000000000a3592 r void cv::Mat::push_back<int>(int const&)::__func__ 00000000000a358e r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a3be6 r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a3e9c r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a47f2 r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a4b38 r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a4da2 r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a4e91 r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a5d02 r cv::Mat::Mat(int, int, int, void*, unsigned long)::__func__ 00000000000a3b65 r cv::Mat::Mat(cv::Size_<int>, int, void*, unsigned long)::__func__ 00000000000a4da6 r cv::Mat::Mat(cv::Size_<int>, int, void*, unsigned long)::__func__ 00000000000a5cf6 r cv::Mat::Mat(cv::Size_<int>, int, void*, unsigned long)::__func__ 00000000000a54d6 r cv::FileStorage& cv::operator<< <bool>(cv::FileStorage&, bool const&)::__func__ 00000000000a6097 r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a350b r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a3b42 r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a3e80 r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a472f r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a4e86 r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a549f r cv::FileStorage& cv::operator<< <double>(cv::FileStorage&, double const&)::__func__ 00000000000a54f7 r cv::FileStorage& cv::operator<< <float>(cv::FileStorage&, float const&)::__func__ 00000000000a60a2 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a3500 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a3b37 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a3e91 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a473a r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a4b21 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a4e75 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a5061 r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a54ec r cv::FileStorage& cv::operator<< <int>(cv::FileStorage&, int const&)::__func__ 00000000000a608c r cv::FileStorage& cv::operator<< <cv::Mat>(cv::FileStorage&, cv::Mat const&)::__func__ 00000000000a34f5 r cv::FileStorage& cv::operator<< <cv::Mat>(cv::FileStorage&, cv::Mat const&)::__func__ 00000000000a4745 r cv::FileStorage& cv::operator<< <cv::Mat>(cv::FileStorage&, cv::Mat const&)::__func__ 00000000000a4b16 r cv::FileStorage& cv::operator<< <cv::Mat>(cv::FileStorage&, cv::Mat const&)::__func__ 00000000000a5056 r cv::FileStorage& cv::operator<< <cv::Mat>(cv::FileStorage&, cv::Mat const&)::__func__ 00000000000a54e1 r cv::FileStorage& cv::operator<< <cv::Mat>(cv::FileStorage&, cv::Mat const&)::__func__ 00000000000a3e75 r cv::FileStorage& cv::operator<< <std::vector<float, std::allocator<float> > >(cv::FileStorage&, std::vector<float, std::allocator<float> > const&)::__func__ 00000000000a54aa r cv::FileStorage& cv::operator<< <std::vector<float, std::allocator<float> > >(cv::FileStorage&, std::vector<float, std::allocator<float> > const&)::__func__ 00000000000a54cb r cv::FileStorage& cv::operator<< <std::vector<unsigned char, std::allocator<unsigned char> > >(cv::FileStorage&, std::vector<unsigned char, std::allocator<unsigned char> > const&)::__func__ 00000000000a3b5a r cv::FileStorage& cv::operator<< <std::vector<int, std::allocator<int> > >(cv::FileStorage&, std::vector<int, std::allocator<int> > const&)::__func__ 00000000000a54b5 r cv::FileStorage& cv::operator<< <std::vector<int, std::allocator<int> > >(cv::FileStorage&, std::vector<int, std::allocator<int> > const&)::__func__ 00000000000a54c0 r cv::FileStorage& cv::operator<< <std::vector<cv::Vec<int, 2>, std::allocator<cv::Vec<int, 2> > > >(cv::FileStorage&, std::vector<cv::Vec<int, 2>, std::allocator<cv::Vec<int, 2> > > const&)::__func__ 00000000000a550a r cv::ml::DTreesImpl::predictTrees(cv::Range const&, cv::Mat const&, int) const::__func__ 00000000000a5502 r cv::ml::DTreesImpl::predict(cv::_InputArray const&, cv::_OutputArray const&, int) const::__func__ 00000000000a506c r cv::ml::KDTreeImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a3b20 r cv::ml::ANN_MLPImpl::getWeights(int) const::__func__ 00000000000a3b4d r cv::ml::ANN_MLPImpl::write_params(cv::FileStorage&) const::__func__ 00000000000a3bc0 r cv::ml::ANN_MLPImpl::calc_activ_func(cv::Mat&, cv::Mat const&) const::__func__ 00000000000a3bd0 r cv::ml::ANN_MLPImpl::predict(cv::_InputArray const&, cv::_OutputArray const&, int) const::__func__ 00000000000a5da7 r cv::ml::TrainDataImpl::getCatCount(int) const::__func__ 00000000000a5d06 r cv::ml::TrainDataImpl::setVarTypes(cv::String const&, int, std::vector<unsigned char, std::allocator<unsigned char> >&) const::__func__ 00000000000a5d30 r cv::ml::TrainDataImpl::getNormCatValues(int, cv::_InputArray const&, int*) const::__func__ 00000000000a5d1a r cv::ml::TrainDataImpl::getSample(cv::_InputArray const&, int, float*) const::__func__ 00000000000a5d41 r cv::ml::TrainDataImpl::getValues(int, cv::_InputArray const&, float*) const::__func__ 00000000000a5078 r cv::ml::BruteForceImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a4e80 r cv::ml::DTreesImplForBoost::write(cv::FileStorage&) const::__func__ 00000000000a3e8b r cv::ml::DTreesImplForRTrees::write(cv::FileStorage&) const::__func__ 00000000000a351c r cv::ml::LogisticRegressionImpl::remap_labels(cv::Mat const&, std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > const&) const::__func__ 00000000000a3516 r cv::ml::LogisticRegressionImpl::write(cv::FileStorage&) const::__func__ 00000000000a359c r cv::ml::LogisticRegressionImpl::predict(cv::_InputArray const&, cv::_OutputArray const&, int) const::__func__ 00000000000a4b2c r cv::ml::NormalBayesClassifierImpl::predictProb(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, int) const::__func__ 00000000000a4700 r cv::ml::SVM::getUncompressedSupportVectors() const::__func__ 00000000000a60c0 r cv::ml::EMImpl::computeProbabilities(cv::Mat const&, cv::Mat*, int) const::__func__ 00000000000a60ad r cv::ml::EMImpl::predict2(cv::_InputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a4daa r cv::ml::KDTree::findNearest(cv::_InputArray const&, int, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a4d93 r cv::ml::KDTree::findOrthoRange(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a4d80 r cv::ml::KDTree::getPoint(int, int*) const::__func__ 00000000000a4d89 r cv::ml::KDTree::getPoints(cv::_InputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a477c r cv::ml::SVMImpl::PredictBody::operator()(cv::Range const&) const::__func__ 00000000000a4760 r cv::ml::SVMImpl::getDecisionFunction(int, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a4750 r cv::ml::SVMImpl::write(cv::FileStorage&) const::__func__ 00000000000a4774 r cv::ml::SVMImpl::predict(cv::_InputArray const&, cv::_OutputArray const&, int) const::__func__
Find one function: eg: findNearest
[root@tutorialspots ~]# nm -C /usr/local/lib/libopencv_ml.so | grep findNearest 00000000000655d0 t cv::ml::KDTreeImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const 00000000000636a0 t cv::ml::KNearestImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const 00000000000642c0 t cv::ml::BruteForceImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const 0000000000068770 t cv::ml::BruteForceImpl::findNearestCore(cv::Mat const&, int, cv::Range const&, cv::Mat*, cv::Mat*, cv::Mat*, float*) const 000000000005b500 T cv::ml::KDTree::findNearest(cv::_InputArray const&, int, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const 00000000000a506c r cv::ml::KDTreeImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a5078 r cv::ml::BruteForceImpl::findNearest(cv::_InputArray const&, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__ 00000000000a4daa r cv::ml::KDTree::findNearest(cv::_InputArray const&, int, int, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&, cv::_OutputArray const&) const::__func__
Solution 2: find one function from many .so files
nm -C -A /usr/local/lib/*.so | grep cvSetZero
Result:
[root@tutorialspots ~]# nm -C -A /usr/local/lib/*.so | grep cvSetZero /usr/local/lib/libopencv_calib3d.so: U cvSetZero /usr/local/lib/libopencv_core.so:000000000024ddd0 T cvSetZero /usr/local/lib/libopencv_imgproc.so: U cvSetZero /usr/local/lib/libopencv_objdetect.so: U cvSetZero /usr/local/lib/libopencv_video.so: U cvSetZero
or:
[root@tutorialspots ~]# nm -D -o --defined-only /usr/local/lib/*.so | grep cvSetZero /usr/local/lib/libopencv_core.so:000000000024ddd0 T cvSetZero