使用gcc编译时未创建分析数据

时间:2018-07-25 13:20:14

标签: gcc gprof

我想使用gprof分析选项来加速我的代码。我正在用gcc进行编译。问题是没有创建输出文件“ gmon.out”左右。这是我正在使用的Makefile的示例:     

CC =  gcc
LD = gcc
#LIBGSL = -L/usr/local/lib -lgsl -lgslcblas
#LIBGSL = -L/usr/lib/x86_64-linux-gnu -lgsl -lgslcblas -lm
#LIBGSL = -L/home/dupont/gsl/gsl-2.4/lib -lgsl -lgslcblas -lm
LIBGSL = -L/n1/soft/64bit/lib -lgsl -lgslcblas -lm

CFLAGSRELEASE = -g -fopenmp -O -Wall -c -pg -I/n1/hhsoft/64bit/include
LFLAGSRELEASE = -g -pg -lm -Wl,--rpath -Wl,/usr/local/lib $(LIBGSL)

CFLAGSDEBUG = -g -p -pg  -Wall
LFLAGSDEBUG = -lm 

CFLAGSDEBUG = -g -p -pg -Wall -W    # -DDEBUG_OUTPUT
LFLAGSDEBUG =  -lm -p -pg -Wl,--rpath -Wl,/usr/local/lib $(LIBGSL) 

LIBS= -L/home/dupont/folder/soft/pgplot -lm -lcpgplot /home/dupont/folder/soft/pgplot/libpgplot.a  -L/usr/X11R6/lib -lX11

CFLAGS = $(CFLAGSRELEASE)
LFLAGS = $(LFLAGSRELEASE)

我对makefile不太了解,您是否知道可能是什么问题...?

1 个答案:

答案 0 :(得分:1)

https://sourceware.org/binutils/docs-2.31/gprof/Executing.html

  

您的程序将在退出前将配置文件数据写入名为gmon.out的文件中

因此,如果make可以生成您的程序,但不会生成gmon.out,则没有错。

(无论如何,您应该删除-p,并确保同时使用-pg进行编译和链接)。