我有这个基本的 OpenCV 代码:
#include "opencv2/opencv.hpp"
int main(){
cv::Mat img = cv::imread("/home/luca/Documents/IMG_20161031_162242.jpg", cv::IMREAD_GRAYSCALE);
if(!img.data)
std::cerr<<"Error reading image"<<std::endl;
return 0;
}
我想分析它以使其cv::imread
并行(并尝试对许多其他功能做同样的事情。
阅读这篇文章,我应该做些什么来分析共享库(在我的例子中是 opencv)我应该:
1) 在调试 (-g) 模式下编译您的共享库 (libmylib.so)。没有-pg。2) export LD_PROFILE_OUTPUT=
pwd
3) export LD_PROFILE=libmylib.so 4) rm -f $LD_PROFILE.profile 4) 执行加载 libmylib.so 的程序 5) sprof PATH-TO-LIB/$LD_PROFILE $LD_PROFILE.profile -p >日志 6) 查看日志。
我有一些问题:
- 我现在如何调用哪个共享库
cv::imread
? - 我不知道是否
cmake -DCMAKE_BUILD_TYPE=DEBUG ...
包含-g
(实际上我不这么认为)。在这里阅读我可以通过编辑来做到这一点CMakeLists.txt
:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
但是不知道在哪里设置CMakeLists.txt