我正在尝试执行找到here的c程序。但是当我尝试在eclipse中构建它时,我会收到许多关于隐式声明的函数和不存在的访问寄存器的错误。我想知道是否有人能够运行这些代码以及它们如何运行(程序,操作系统等)我在使用带有eclipse和gcc的ubuntu虚拟机的Windows机器上尝试执行此代码。
以下是Eclipse SDK中的错误列表(我修复了原始代码中的一些错误):
**** Build of configuration Debug for project nearpi ****
make all
Building file: ../src/nearpi.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/nearpi.d" -MT"src/nearpi.d" -o "src/nearpi.o" "../src/nearpi.c"
../src/nearpi.c:465:1: warning: return type defaults to ‘int’ [-Wreturn-type]
../src/nearpi.c: In function ‘main’:
../src/nearpi.c:501:5: warning: implicit declaration of function ‘input’ [-Wimplicit-function-declaration]
../src/nearpi.c:532:9: warning: implicit declaration of function ‘nearPiOver2’ [-Wimplicit-function-declaration]
../src/nearpi.c:540:9: warning: implicit declaration of function ‘dbleCF’ [-Wimplicit-function-declaration]
../src/nearpi.c: At top level:
../src/nearpi.c:590:1: warning: return type defaults to ‘int’ [-Wreturn-type]
../src/nearpi.c:694:1: warning: return type defaults to ‘int’ [-Wreturn-type]
../src/nearpi.c:756:1: warning: return type defaults to ‘int’ [-Wreturn-type]
../src/nearpi.c: In function ‘nearPiOver2’:
Finished building: ../src/nearpi.c
../src/nearpi.c:935:1: warning: control reaches end of non-void function [-Wreturn-type]
../src/nearpi.c: In function ‘input’:
../src/nearpi.c:748:1: warning: control reaches end of non-void function [-Wreturn-type]
Building target: nearpi
../src/nearpi.c: In function ‘main’:
Invoking: GCC C Linker
gcc -o "nearpi" ./src/nearpi.o -lm
../src/nearpi.c:564:1: warning: control reaches end of non-void function [-Wreturn-type]
完成建筑目标:近乎
答案 0 :(得分:5)
当在现代编译器[*]上编译时,该代码中存在错误。如果我是你,我会联系任何获得许可的人,并要求退还我的钱。
一些的错误是:
#include <stdio.h>
,#include <math.h>
register
关键字。在任何地方删除该关键字。如果您修复了所有这些错误,它就会运行。我不知道它是否能产生正确答案,但它确实会运行。
* 该代码写于1983年,当时C的主流标准是K&amp; R的第一版。从那时起,已经出版了三个C国际标准,该代码从未更新过。大多数错误和警告都是因为年纪大了。
答案 1 :(得分:1)