Ада программирование в 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-процедура все еще выполняется, и вы пытаетесь одновременно скомпилировать решение и запустить вашу процедуру одновременно. Остановите выполнение программы и попробуйте выполнить компиляцию. Это должно работать как ожидалось.