使用android NDK编译OpenCV 2.4.1以使用gprof进行性能分析

时间:2012-07-06 15:47:58

标签: opencv android-ndk gprof

我正在使用Android NDK和OpenCV(版本2.4.1)。我想要做的是分析一个使用opencv作为库的android应用程序(并将调用的函数分析为opencv)。

我设置了所有环境(android NDK,SDK,openCV和openCV for android),但显然无法对opencv进行配置,因为在android中它使用了一堆预构建的库。

我试过这两种方式:

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

  
    

我试图把选项放到-pg但它给我一个不兼容的错误        所以建议Here。     我纠正了这个选项的错误     -DENABLE_PROFILING = ON -DOPENCV_LINKER_LIBS = / full / path / to / libandprof.a但是我收到此错误:

  

[0%]构建C对象3rdparty / libtiff / CMakeFiles / 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中包含的文件中,                  来自/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:32: /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:67:错误:预期' =',',',' ;',' asm'或' 属性'之前' tmsize_t'

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:77:错误:预期' =',',',& #39 ;;',' asm'或' 属性'之前' tsize_t'

在/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffiop.h:60中包含的文件中,                  来自/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:警告:类型默认为' int'在宣布' tmsize_t'

/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:错误:' TIFFTileSize'声明为函数返回函数

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

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:376:错误:预期' =',',',& #39 ;;',' asm'或' 属性'之前' TIFFGetReadProc'

/home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tiffio.h:377:错误:预期' =',',',& #39 ;;',' asm'或' 属性'之前' TIFFGetWriteProc' /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/tiffio.h:460:错误:' TIFFWriteEncodedStrip'声明为返回函数的函数 /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:错误:' TIFFWriteEncodedTile'声明为返回函数的函数 /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/tiffiop.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_aux.c:67:错误:无效操作数到二进制*(有' int()()'和& #39; int()()') /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:72:错误:无效的操作数到二进制/(有' int()()'和& #39; 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:error:cast指定函数类型 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:102:错误:无效操作数到二进制*(有' int(*)()'和&#39 ; unsigned int') /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:106:错误:左值作为赋值的左操作数需要左值 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:106:错误:需要左值作为递增操作数 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.c:107:错误:指向预期浮点值的指针值 /home/bacci/librerie/OpenCV-2.4.1/3rdparty/libtiff/tif_aux.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_aux.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/tiffio.h:295:注意:预期' int(*)()'但是参数的类型为' unsigned int'

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

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

make: * [all]错误2

`

2 - 尝试在我的c ++ android应用程序中集成openCV的一些源代码(extern C)

  
    

这不是一个好的解决方案,因为我无法通过程序的所有调用获得真正的树,因为您不会将所有opencv源集成到我的应用程序中的jni文件夹中。

  

有人可以帮我解决这个问题吗?

谢谢

0 个答案:

没有答案