Не могу получить программу на C для сборки - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь выполнить найденную программу c здесь .Но когда я пытаюсь построить его в затмении, я получаю многочисленные ошибки о неявном объявлении функций и обращении к регистрам, которые не существуют.Мне было интересно, может ли кто-нибудь запустить этот код и как он его работает (программа, ОС и т. Д.) Я нахожусь на машине с Windows, использующей виртуальную машину Ubuntu с eclipse и gcc, чтобы попытаться выполнить этот код.

Вот список ошибок из 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]

Завершенная цель здания: nearpi

Ответы [ 2 ]

5 голосов
/ 01 марта 2012

Этот код содержит ошибки при компиляции на современном компиляторе [*].Если бы я был вами, я бы связался с тем, кто лицензировал его, и попросил бы вернуть мои деньги.

Некоторые из ошибок:

  • Отсутствует #include <stdio.h>, #include <math.h>
  • Используется ключевое слово register неправильно.Удалите это ключевое слово везде, где оно появляется.
  • Он использует "% E", когда должен был использовать "% lE".
  • Он использует "% 08x", когда должен был использовать "% 08lx".
  • Он использует "1.0E", когда должен был использовать "1.0".

Если вы исправите все эти ошибки, он запустится.Я не знаю, дает ли он правильный ответ, но он работает.

* Этот код был написан в 1983 году, когда преобладающим стандартом для C было первое издание K & R.С тех пор было опубликовано три международных стандарта C, и этот код никогда не обновлялся.Большинство ошибок и предупреждений являются следствием того, что они очень старые.

1 голос
/ 01 марта 2012

Вы сталкиваетесь только с ошибками связывания (в текущей версии вопроса), например

undefined reference to `floor' 

это означает, что вам нужно добавить математическую библиотеку, добавив '-lm' к опциям компилятора.

Дополнительные объяснения вы найдете здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...