• ofxTimeMeasurements——OpenFrameworks插件,可以轻松测量C++代码任何部分的执行时间


    一、简介

    ofxTimeMeasurements是一款用于OpenFrameworks 开源C++框架的插件,可以让使用者轻松测量C++代码任何部分的执行时间。其优势在于以图形化的方式显示代码执行时间。效果如下:

    只是它必须依赖OpenFrameworks,所以如果你不用这个框架,还是推荐用我之前写的《C++计算打印函数和代码块的执行时间(支持所有类型函数)》,来测量代码执行时间吧,那样更方便。

    二、下载编译OpenFrameworks

    首先下载OpenFrameworks。vs2017可以直接在 “拓展”->“管理扩展”->“联机” 中搜索和下载到此插件。但vs2019或更高版本的vs中则不行,必须手动下载安装。我用的是vs2019,下面演示在vs2019中手动安装的方法。

    下载 https://openframeworks.cc/versions/v0.10.1/of_v0.10.1_vs2017_release.zip 

    解压,进入目录libs\openFrameworksCompiled\project\vs,打开openframeworksLib.sln

    “生成”

    完成后可以看到在libs\openFrameworksCompiled\lib\vs\Win32中生成了openframeworksLib_debug.lib

    三、下载编译ofxTimeMeasurements例程

    在 https://github.com/armadillu/ofxTimeMeasurements 下载ofxTimeMeasurements源码

    新建vs控制台程序。按照如下结构将其头文件和源文件放进去。

    “视图”->“属性管理器”

    添加新项目属性表

    “PropertySheet” -> “属性” -> “用户宏” 将openFrameworksCompiled的根目录路径添加进去

    “PropertySheet” -> “属性” -> “C/C++” -> “常规” ->“附加包含目录” ,添加如下路径

    1. $(OF_ROOT)\libs\openFrameworks
    2. $(OF_ROOT)\libs\openFrameworks\graphics
    3. $(OF_ROOT)\libs\openFrameworks\app
    4. $(OF_ROOT)\libs\openFrameworks\sound
    5. $(OF_ROOT)\libs\openFrameworks\utils
    6. $(OF_ROOT)\libs\openFrameworks\communication
    7. $(OF_ROOT)\libs\openFrameworks\video
    8. $(OF_ROOT)\libs\openFrameworks\types
    9. $(OF_ROOT)\libs\openFrameworks\math
    10. $(OF_ROOT)\libs\openFrameworks\3d
    11. $(OF_ROOT)\libs\openFrameworks\gl
    12. $(OF_ROOT)\libs\openFrameworks\events
    13. $(OF_ROOT)\libs\glm\include
    14. $(OF_ROOT)\libs\rtAudio\include
    15. $(OF_ROOT)\libs\quicktime\include
    16. $(OF_ROOT)\libs\freetype\include
    17. $(OF_ROOT)\libs\freetype\include\freetype2
    18. $(OF_ROOT)\libs\freeImage\include
    19. $(OF_ROOT)\libs\fmod\include
    20. $(OF_ROOT)\libs\videoInput\include
    21. $(OF_ROOT)\libs\glew\include\
    22. $(OF_ROOT)\libs\glu\include
    23. $(OF_ROOT)\libs\tess2\include
    24. $(OF_ROOT)\libs\cairo\include\cairo
    25. $(OF_ROOT)\libs\glfw\include
    26. $(OF_ROOT)\libs\openssl\include
    27. $(OF_ROOT)\libs\utf8\include
    28. $(OF_ROOT)\libs\boost\include
    29. $(OF_ROOT)\libs\json\include
    30. $(OF_ROOT)\libs\curl\include
    31. $(OF_ROOT)\libs\uriparser\include
    32. $(OF_ROOT)\libs\pugixml\include
    33. $(OF_ROOT)\addons

    “PropertySheet” -> “属性” -> “链接器” -> “常规” -> “附加库目录” ,添加如下路径

    1. $(OF_ROOT)\libs\glfw\lib\vs\Win32
    2. $(OF_ROOT)\libs\rtAudio\lib\vs\Win32
    3. $(OF_ROOT)\libs\FreeImage\lib\vs\Win32
    4. $(OF_ROOT)\libs\freetype\lib\vs\Win32
    5. $(OF_ROOT)\libs\fmod\lib\vs\Win32
    6. $(OF_ROOT)\libs\videoInput\lib\vs\Win32
    7. $(OF_ROOT)\libs\cairo\lib\vs\Win32
    8. $(OF_ROOT)\libs\glew\lib\vs\Win32
    9. $(OF_ROOT)\libs\glu\lib\vs\Win32
    10. $(OF_ROOT)\libs\openssl\lib\vs\Win32
    11. $(OF_ROOT)\libs\curl\lib\vs\Win32
    12. $(OF_ROOT)\libs\tess2\lib\vs\Win32
    13. $(OF_ROOT)\libs\boost\lib\vs\Win32
    14. $(OF_ROOT)\libs\uriparser\lib\vs\Win32
    15. $(OF_ROOT)\libs\pugixml\lib\vs\Win32
    16. $(OF_ROOT)\libs\openFrameworksCompiled\lib\vs\Win32

    “PropertySheet” -> “属性” -> “链接器” -> “输入” -> “附加依赖项”,添加如下路径

    1. cairo-static.lib
    2. pixman-1.lib
    3. libpng.lib
    4. zlib.lib
    5. msimg32.lib
    6. OpenGL32.lib
    7. GLu32.lib
    8. kernel32.lib
    9. setupapi.lib
    10. Vfw32.lib
    11. comctl32.lib
    12. rtAudioD.lib
    13. videoInputD.lib
    14. libfreetype.lib
    15. FreeImage.lib
    16. dsound.lib
    17. user32.lib
    18. gdi32.lib
    19. winspool.lib
    20. comdlg32.lib
    21. advapi32.lib
    22. shell32.lib
    23. ole32.lib
    24. oleaut32.lib
    25. uuid.lib
    26. glew32s.lib
    27. fmod_vc.lib
    28. glu32.lib
    29. libssl.lib
    30. libcrypto.lib
    31. crypt32.lib
    32. libcurl.lib
    33. uriparser.lib
    34. pugixmld.lib
    35. Ws2_32.lib
    36. tess2.lib
    37. glfw3.lib
    38. winmm.lib
    39. odbc32.lib
    40. odbccp32.lib
    41. wldap32.lib
    42. openframeworksLib_debug.lib

    “解决方案资源管理器” 

    “属性” -> “C/C++” -> “常规” -> “附加包含目录” ,将ofxTimeMeasurements的头文件和源文件目录包含进去。 

    “SDL检查” -> 否

    “预处理器定义”,添加:_CRT_SECURE_NO_DEPRECATE

    _SCL_SECURE_NO_DEPRECATE
    BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE

    “代码生成” -> “运行库” -> “多线程调试 DLL (/MDd)”

    “链接器” -> “命令行” -> /NODEFAULTLIB:"libcmt.lib" 

    编译项目,编译过程中可能还有点小报错,根据提示修改即可。

    将of_v0.11.2_vs2017_release\libs\fmod\lib\vs\Win32中的fmod.dll、fmodL.dll

     

    of_v0.11.2_vs2017_release\libs\FreeImage\lib\vs\Win32中的FreeImage.dll

     

    拷贝到当前项目目录中

     

    然后运行即可看到效果:

    四、参考文章

    visual studio setup guide

    The setup to use oF with VS 2019

    Installing openFrameworks on Visual Studio 2019 for Windows

  • 相关阅读:
    辗转相除法——数组和的关系
    机器人相关课程考核材料归档实施细则2022版本
    [大师C语言(第十八篇)]C语言typedef背后技术详解
    java学习任务书(14)
    TFX发展简史/《Towards ML Engineering: A Brief History Of TensorFlow Extended (TFX)》
    如何优雅的避免空指针异常
    6-TRITC 四甲基罗丹明-6-异硫氰酸 CAS 80724-20-5
    【小程序】九宫格抽奖,页面不是有点丑,功能没啥问题,有需要直接拿去改吧
    未来城市:数字孪生技术助力智慧城市构建
    solidworks 2024新功能之--保存为低版本 硕迪科技
  • 原文地址:https://blog.csdn.net/u014552102/article/details/128096688