首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在cmake中使用gprof

如何在cmake中使用gprof
EN

Stack Overflow用户
提问于 2014-10-22 00:45:37
回答 2查看 22.2K关注 0票数 21

我已经阅读了几十个使用gprof进行性能分析的教程。我正在尝试使用SMT求解器dReal的代码。为了构建这个程序,我首先安装了g++-4.8、Bison、Flex和Cmake。然后构建dReal,所说的指令执行以下操作:

代码语言:javascript
复制
git clone git@github.com:soonhokong/dReal.git dreal  
cd dreal  
mkdir -p build/release  
cd build/release  
cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER=g++-4.8 -DCMAKE_C_COMPILER=gcc-4.8 ../../src  
make

我应该在这里的什么地方添加-pg?我是编程新手,所以我会非常感激推理而不是答案。我知道你应该把-pg添加到编译阶段,但是所有的教程都说要把它放在g++或gcc之后。我找不到如何修改cmake的代码。我确实尝试过将构建类型更改为PROFILE,但这没有帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-12-02 07:05:36

为了使用gprof,您需要使用-pg选项进行编译和链接。

CMakeLists.txt应该有一个像前面提到的Ami Tavory这样的设置,其中命令行选项与硬编码选项相结合,所以使用一个构建良好的cmake项目来实现这一点的一个好方法是:

代码语言:javascript
复制
cmake -DCMAKE_CXX_FLAGS=-pg -DCMAKE_EXE_LINKER_FLAGS=-pg -DCMAKE_SHARED_LINKER_FLAGS=-pg <SOURCE_DIR>
票数 24
EN

Stack Overflow用户

发布于 2014-12-17 04:30:45

我是Soonho Kong,dReal的维护者之一。如果你在问题上打上" dReal“的标签,我们回答有关dreal的问题会更容易。

  1. 通常,您可以通过运行以下命令将编译器标志(如-pg )传递给cmake:

我通常使用valgrind + callgrind.

  • To来测量代码覆盖率,我们使用的是-DCMAKE_CXX_FLAGS=-pg

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26491948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档