Ада программирование в GPS

Я новичок в использовании как языка ада, так и GPS. Кажется, я не могу найти какие-либо надежные учебники, которые бы помогли выучить Ada или GPS, но это не мой вопрос.

Я пробовал различные простые программы, как эта:

with Win32.crt.Math;
with Interfaces.C;

procedure sqrt is
X : Interfaces.C.Double;
begin
   X := Win32.crt.Math.sqrt(x => 4.0) ;
end sqrt;

Я пробовал другие, похожие по своей простоте, и нашел другие более сложные в Интернете, и я действительно заставил их работать.

В любом случае, я получаю эту ошибку при попытке собрать:

gnatmake -d -PC:\Users\bqw3960\Desktop\GPS2012\2-two\sqrt.gpr sqrt.adb

gnatbind -x sqrt.ali

gnatlink -o c:\users\bqw3960\desktop\gps2012\2-two\sqrt.exe sqrt.ali

C:\GNAT\Bindings\Win32Ada\win32-crt-math.o(.text+0x1a):win32-crt-math.adb: undefined 

reference to `__imp__HUGE'

gnatlink: cannot call C:\GNAT\bin\gcc.exe

gnatmake: *** link failed.

[2013-06-13 10:53:18] process exited with status 4 (elapsed time: 00.51s)

Я думаю, что это просто, но я не могу понять это.

Я также иногда получаю это, когда пытаюсь скомпилировать после первого изменения чего-либо:

gcc.exe: unrecognized option `-ws'

2 ответа

Что делает твой sqrt.gpr сказать? Я только что попробовал это, и gnatlink шаг сказал

gnatlink "C:\Documents and Settings\Simon\sqrt.ali" C:\GNAT\2012\lib\win32ada\static\libwin32ada.a -o "C:\Documents and Settings\Simon\sqrt.exe"

который сильно отличается от вашего... и работал.

мой sqrt.gpr сказал

with "win32ada";
project Sqrt is
   for Main use ("sqrt.adb");
end Sqrt;

Это потому, что ваша sqrt-процедура все еще выполняется, и вы пытаетесь одновременно скомпилировать решение и запустить вашу процедуру одновременно. Остановите выполнение программы и попробуйте выполнить компиляцию. Это должно работать как ожидалось.

Другие вопросы по тегам