使用android NDK编译OpenCV 2.4.1以使用gprof进行评测

使用android NDK编译OpenCV 2.4.1以使用gprof进行评测,opencv,android-ndk,gprof,Opencv,Android Ndk,Gprof,我正在使用android NDK和OpenCV版本2.4.1。我试图做的是分析一个android应用程序,它使用opencv作为库,并分析调用到opencv中的函数 我为android设置了所有环境android NDK、SDK、openCV和openCV,但显然不可能对openCV进行评测,因为android使用了大量预构建的库 我试过两种方法: 1-重新编译openCV库,添加C标志-pg 我尝试过使用-pg选项,但它给了我一个不兼容的错误 正如所建议的那样。 我纠正了这个错误,把选项 -D

我正在使用android NDK和OpenCV版本2.4.1。我试图做的是分析一个android应用程序,它使用opencv作为库,并分析调用到opencv中的函数

我为android设置了所有环境android NDK、SDK、openCV和openCV,但显然不可能对openCV进行评测,因为android使用了大量预构建的库

我试过两种方法:

1-重新编译openCV库,添加C标志-pg

我尝试过使用-pg选项,但它给了我一个不兼容的错误 正如所建议的那样。 我纠正了这个错误,把选项 -DENABLE_PROFILING=ON-DOPENCV_LINKER_LIBS=/full/path/to/libandprof.a但是我得到了这个错误:

[0%]构建C对象第三方/libtiff/cmakfiles/libtiff.dir/tif_aux.C.o

文件包括在/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:32中: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:56:错误:需要声明说明符或在“size\t”之前加“…”

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:56:错误:需要声明说明符或在“size\t”之前加“…”

在/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:60中包含的文件中, from/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:32: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifio.h:67:错误:应为“=”、“,”、“;”、”“tmsize\t”之前的“asm”或“属性”

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifio.h:77:错误:应为“=”、“,”、“;”、”“tsize\t”之前的“asm”或“attribute”

在/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:60中包含的文件中, from/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:32: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:275:错误:需要声明说明符或“*”标记前面的“…”

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:275:错误:预期的声明说明符或在“tmsize_t”之前的“…”

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:275:警告:在“tmsize\u t”声明中,类型默认为“int”

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:275:错误:“tmsize_t”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:348:错误:“TIFFScanlineSize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:350:错误:“TIFFRasterScanlineSize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:352:错误:“TIFFStripSize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:354:错误:“TIFFRawStripSize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:356:错误:“TIFFVStripSize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:358:错误:“TIFFTileRowSize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:360:错误:“tiffilesize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:362:错误:“tifftilesize”声明为返回函数的函数

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifio.h:376:错误:应为“=”、“,”、“;”、”“TIFFGetReadProc”之前的“asm”或“属性”

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifio.h:377:错误:应为“=”、“,”、“;”、”“TIFFGetWriteProc”之前的“asm”或“属性” /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:434:错误:应使用声明说明符或“TIFFReadWriteProc”之前的“…” /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:434:错误:应使用声明说明符或“TIFFReadWriteProc”之前的“…” /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:452:错误:“TIFFReadTile”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:453:错误:“TIFFWriteTile”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:456:错误:“TIFFReadEncodedStrip”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:457:错误:“TIFFReadRawStrip”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:458:错误:“TIFFReadEncodedTile”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:459:错误:“TIFFReadRawTile”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifio.h:460:错误:“TI” FFWriteEncodedStrip'声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:461:错误:“TIFFWriteRawStrip”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:462:错误:“tiffWriteEncodedFile”声明为返回函数的函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:463:错误:“TIFFWriteRawTile”声明为返回函数的函数 文件包括在/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:32中: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifiop.h:148:错误:字段“tif_tilesize”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:171:错误:字段“tif_scanlinesize”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:172:错误:字段“tif_scanlineskew”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:174:错误:字段“tif_rawdatasize”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:175:错误:字段“tif_rawdataoff”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:176:错误:字段“tif_rawdataloaded”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:178:错误:字段“tif_rawcc”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:181:错误:字段“tif_size”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:186:错误:“TIFFReadWriteProc”之前应为说明符限定符列表 文件包括在/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:33中: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_predict.h:40:错误:字段“stride”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_predict.h:41:错误:字段“rowsize”声明为函数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:在函数“TIFFCheckRealloc”中: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:67:错误:函数“bytes”像变量一样初始化 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:67:错误:二进制*的无效操作数具有“int”和“int” /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:72:错误:二进制操作数无效/具有“int”和“int” /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:67:错误:声明了嵌套函数“bytes”,但从未定义 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:在函数“TIFFDefaultTransferFunction”中: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:101:错误:cast指定函数类型 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:102:错误:二进制*的无效操作数具有“int*”和“unsigned int” /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:106:错误:赋值的左操作数需要左值 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:106:错误:增量操作数需要左值 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:107:错误:在需要浮点值的地方使用了指针值 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:107:错误:在需要浮点值的地方使用了指针值 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:108:错误:数组下标不是整数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_辅助c:在函数“TIFFDefaultRefBlackWhite”中: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:137:警告:传递“_TIFFmalloc”的参数1会从整数生成指针而不进行强制转换 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tifio.h:295:注意:应为“int*”,但参数的类型为“unsigned int”

生成[2]:*[3rdparty/libtiff/CMakeFiles/libtiff.dir/tif_aux.c.o]错误1

make:[3rdparty/libtiff/CMakeFiles/libtiff.dir/all]错误2

make:[全部]错误2

`

2——尝试将OpenCV的一些源代码集成在矿山C++ Android应用程序外部c

这不是一个好的解决方案,因为我无法获得包含所有程序调用的真实树,因为您没有将所有opencv源代码集成到jni文件夹中的我的应用程序中

有人能帮我解决这个问题吗

谢谢