如何在cygwin中将-pg传递给gcc
我只想测试-pg,源文件很简单,我的环境很好 赛文如何在cygwin中将-pg传递给gcc,gcc,cygwin,gprof,Gcc,Cygwin,Gprof,我只想测试-pg,源文件很简单,我的环境很好 赛文 $ uname -a CYGWIN_NT-10.0 SHA-LPLATOW 2.8.2(0.313/5/3) 2017-07-12 10:58 x86_64 Cygwin $ vi pgtest.c #include <stdio.h> void main(void){ printf("hello, world\n"); } 但是-pg报告错误 $ gcc -pg -c pgtest.c $ gcc
$ uname -a
CYGWIN_NT-10.0 SHA-LPLATOW 2.8.2(0.313/5/3) 2017-07-12 10:58 x86_64 Cygwin
$ vi pgtest.c
#include <stdio.h>
void main(void){
printf("hello, world\n");
}
但是-pg报告错误
$ gcc -pg -c pgtest.c
$ gcc -o pgtest.exe pgtest.o
pgtest.o:pgtest.c:(.text+0x1): undefined reference to `__fentry__'
pgtest.o:pgtest.c:(.text+0x1): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `__fentry__'
pgtest.o:pgtest.c:(.text+0xe): undefined reference to `_monstartup'
pgtest.o:pgtest.c:(.text+0xe): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_monstartup'
collect2: error: ld returned 1 exit status
我试过了,都是一样的
export LDFLAGS="-pg" ; gcc -o pgtest.exe pgtest.o
从gcc信息页面
“-pg”生成额外的代码,以写入适用于 分析程序“gprof”。编译时必须使用此选项 需要数据的源文件,并且在 链接 因此,如果要单独编译和链接,需要重复
-pg
$ gcc -c pgtest.c -pg
$ gcc -o pgtest.exe pgtest.o -pg
简单地
gcc-o pgtest.exe pgtest.o-pg
怎么样?@chtz没问题,但我想通过环境变量传递它,因为我使用的是SCON。@Netaweater,我想你必须检查你的SCON
文档,或者你可以获得SCON
帮助的地方。(这里可能有一个scons
标签?)我对scons
几乎一无所知。能否将'-pg'
标志添加到SCON
设置中?scons
是否查看环境变量gcc
不会查看LDFLAGS
或类似的内容。您可以在调用make
之前设置LDFLAGS
,因为make
将查看它并将其传递给gcc
@SeeJayBee谢谢,我发现使用LINKFLAGS代替LDFLAGS对于sconsthanks是可以的,但是我在scons中使用link命令,我可以直接设置它,可以通过环境变量完成
$ gcc -c pgtest.c -pg
$ gcc -o pgtest.exe pgtest.o -pg