在 unix 中编译 dhrystone 时出错

Posted

技术标签:

【中文标题】在 unix 中编译 dhrystone 时出错【英文标题】:Errors while compiling dhrystone in unix 【发布时间】:2012-03-30 18:26:46 【问题描述】:

我是使用基准和 makefile 的新手。我已经从下面的链接下载了 Dhrystone 基准测试,我正在尝试编译它,但我遇到了奇怪的错误。我试图解决它,但我没有成功。有人可以帮我运行 dhrystone 基准测试吗? 以下是我尝试编译的两种不同方式。但是两者都给出了相同的错误结果:(

链接:http://fossies.org/unix/privat/old/dhrystone-2.1.tar.gz/

编译命令尝试

gcc -g dhry.h dhry_1.c dhry_2.c -o dhrystonex

make all 

错误:

gcc -O -DTIMES           -DHZ=60                dhry_1.c dhry_2.c  -o gcc_dry2
dhry_1.c:31:18: warning: conflicting types for built-in function ‘malloc’ [enabled by default]
dhry_1.c:48:17: error: conflicting types for ‘times’
/usr/include/i386-linux-gnu/sys/times.h:49:16: note: previous declaration of ‘times’ was here
dhry_1.c: In function ‘main’:
dhry_1.c:98:3: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
dhry_1.c:124:11: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
make: *** [gcc_dry2] Error 1

【问题讨论】:

【参考方案1】:

进行以下更改。前面带有- 的行表示您应该删除的行。前面带有+ 的行表示您应该添加的行。总共,您将替换两行(在它们前面加上//)并添加一个新行(#include):

    diff -bup orig/dhry_1.c new/dhry_1.c
    --- orig/dhry_1.c       2012-03-30 11:30:41.984107303 -0700
    +++ new/dhry_1.c        2012-03-30 11:31:29.256002567 -0700
    @@ -28,7 +28,7 @@ char            Ch_1_Glob,
     int             Arr_1_Glob [50];
     int             Arr_2_Glob [50] [50];

    -extern char     *malloc ();
    +// extern char     *malloc ();
     Enumeration     Func_1 ();
       /* forward declaration necessary since Enumeration may not simply be int */

    @@ -45,7 +45,7 @@ Enumeration     Func_1 ();

     #ifdef TIMES
     struct tms      time_info;
    -extern  int     times ();
    +// extern  int     times ();
                                     /* see library function "times" */
     #define Too_Small_Time (2*HZ)
                                     /* Measurements should last at least about 2 seconds */
    diff -bup orig/dhry.h new/dhry.h
    --- orig/dhry.h 2012-03-30 11:30:41.984107303 -0700
    +++ new/dhry.h  2012-03-30 11:31:29.256002567 -0700
    @@ -392,6 +392,7 @@
     /* General definitions: */

     #include <stdio.h>
    +#include <string.h>
                                     /* for strcpy, strcmp */

     #define Null 0 

【讨论】:

哦!多么简单!你在几秒钟内完成了我的工作。我仍然不明白为什么我错过了这么简单的编译错误。无论如何非常感谢。 @sreeharivallu :是时候花 2 分钟的时间,接受解决您问题的问题的答案 (i.imgur.com/uqJeW.png) 并投票支持其他有助于您的情况的答案 (i.imgur.com/kygEP.png)。祝大家好运。

以上是关于在 unix 中编译 dhrystone 时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用@Grab 注解编译 Groovy 项目时出错

Linux下运行《UNIX环境高级编程》undefined reference to `err_quit 编译出错的处理方法

CPU性能的评价

出现中文符号时,编译错误信息显示啥

尝试在 unix 服务器上安装 headless Dropbox 时出错

Kali Linux中,make编译时出现错误怎么解决?