Здравствуйте! Возвращаюсь к своей любимой теме :-) Ситуация: Есть проограмма на Ada - не важно, что в ней Есть кросс-компиллер для ARM, к примеру Исходники лежат в src, объектники в obj и исполняемый в elf Вручную всё собирается с помощью таких команд: arm-linux-gnueabihf-gcc-5 -c ./src/hello.adb -o ./bin/hello.o arm-linux-gnueabihf-gnatbind ./bin/hello.ali arm-linux-gnueabihf-gnatlink ./bin/hello.ali -o ./elf/hello Однако это как-то скучно будет для большого проекта. Написал крохотный файл проекта: project Ada_First is for Target use "arm-linux-gnueabihf"; for Languages use ("Ada"); for Source_Dirs use ("src"); for Object_Dir use "./bin"; for Exec_Dir use "elf"; for Main use ("main.adb"); end Ada_First; Однако, gnatmake никак не реагирует на строку for Target use "arm-linux-gnueabihf"; Просто создаёт ELF для х86_64. Если же задаю этот параметр в командной строке: gnatmake --target=arm-linux-gnueabihf -P ada_first.gpr говорит, что нелегальный ключ. Хорошо, тогда попытался использовать gprbuild. Сначала, с помощью gprconfig создал файд cgpr. Утилиту gprconfig вызывал с ключом --target=arm-linux-gnueabihf и хотя утилита, вроде-бы находила кросс-тулзы, но в файле cgrp не было ни малейшего упоминания о языке Ada, только - C. Я руками дописал строки, которые мне показались разумными. В результате получилось вот что: -- This gpr configuration file was generated by gprconfig -- using this command line: -- gprconfig --target=arm-linux-gnueabihf --config=Ada configuration project Default is for Target use "arm-linux-gnueabihf"; for Archive_Builder use ("ar", "cr"); for Archive_Builder_Append_Option use ("q"); for Archive_Indexer use ("ranlib"); for Archive_Suffix use ".a"; for Library_Builder use "/usr/lib/gprbuild/gprlib"; for Library_Support use "full"; -- for Shared_Library_Prefix use "/usr/arm-linux-gnueabihf/sysroot/usr/lib"; for Shared_Library_Prefix use "lib"; for Symbolic_Link_Supported use "true"; for Library_Major_Minor_Id_Supported use "true"; for Shared_Library_Minimum_Switches use ("-shared"); for Library_Version_Switches use ("-Wl,-soname,"); for Shared_Library_Suffix use ".so"; for Library_Auto_Init_Supported use "true"; for Run_Path_Option use ("-Wl,-z,origin,-rpath,"); for Run_Path_Origin use "$ORIGIN"; for Library_Encapsulated_Options use ("-shared", "-static-libgcc"); for Library_Partial_Linker use ("arm-linux-gnueabi-gcc", "-nostdlib", "-Wl,-r", "-o"); for Default_Language use "C"; package Builder is for Executable_Suffix use ""; end Builder; package Compiler is for Driver ("C") use "/usr/bin/arm-linux-gnueabi-gcc"; for Leading_Required_Switches ("C") use ("-c", "-x", "c") & Compiler'Leading_Required_Switches ("C"); for Driver ("Ada") use "/usr/bin/arm-linux-gnueabi-gcc"; for Leading_Required_Switches ("Ada") use ("-c") & Compiler'Leading_Required_Switches ("Ada"); for Include_Path ("C") use "CPATH"; for Include_Path ("Ada") use "ADAPATH"; for Dependency_Switches ("C") use ("-MMD", "-MF", ""); for PIC_Option ("C") use ("-fPIC"); end Compiler; package Naming is for Spec_Suffix ("C") use ".h"; for Body_Suffix ("C") use ".c"; for Spec_Suffix ("Ada") use ".ads"; for Body_Suffix ("Ada") use ".adb"; end Naming; package Linker is for Map_File_Option use "-Wl,-Map,"; for Driver use Compiler'Driver ("C"); end Linker; package Clean is -- Remove the files generated by gnatinspect (in the context of GPS) for Artifacts_In_Object_Dir use Clean'Artifacts_In_Object_Dir & ("gnatinspect.*"); for Source_Artifact_Extensions ("C") use (".gli"); for Object_Artifact_Extensions ("C") use (".s", "ci", ".gcno"); end Clean; end Default; Теперь, если запустить так: gprbuild -P ada_first.gpr то запускается кросс-компилляция. И успешно проходит - создаются файлы *.ali и *.o. А вот линковка падает: не находит библиотек: function `_start': (.text+0x28): undefined reference to `main' main.o: In function `_ada_main': main.adb:(.text+0x1e): undefined reference to `ada__assertions__assert__2' libada_first.a(hello.o): In function `_ada_hello': hello.adb:(.text+0x18): undefined reference to `ada__text_io__put_line__2' hello.adb:(.text+0x30): undefined reference to `ada__text_io__put_line__2' collect2: error: ld returned 1 exit status gprbuild: link of main.adb failed Я понимаю, что где-то надо задать расположение ARM-овских библиотек, они у меня есть. Но вот - где и как ?
On 03/28/2017 09:17 AM, [email protected] [ada_ru] wrote: > > Однако, gnatmake никак не реагирует на строку > > for Target use "arm-linux-gnueabihf"; > По секрету: gnatmake вообще не понимает файлы проектов. Забудьте о нём. > Хорошо, тогда попытался использовать gprbuild. Сначала, с помощью > gprconfig создал файд cgpr. > Утилиту gprconfig вызывал с ключом --target=arm-linux-gnueabihf и хотя > утилита, вроде-бы находила кросс-тулзы, но в файле cgrp не было ни > малейшего упоминания о языке Ada, только - C. Вот это правильный путь. Только имеет смысл добавлять -v и анализировать вывод, что бы подправить базу данных gprbuild или системные пакеты что бы Ada находилась самостоятельно. > Я понимаю, что где-то надо задать расположение ARM-овских библиотек, они > у меня есть. Тогда разбираться почему же gprconfig не находит компилятор Ada. Раскрою ещё один секрет - он наверное как раз и не находит эти библиотеки.
Втр 28 Мар 2017 09:17:49 +0300, sv [email protected] [ada ru] <ada [email protected]> написал: > Здравствуйте! > > Возвращаюсь к своей любимой теме :-) Попробуйте допилить БД gprbuild-а. Это должно быть не сложно. Запускайте gprconfig --target=arm-linux-gnueabihf --config=ada,, -v и "-v -v" и смотрите, что не находит. Скорее всего просто версия компилятора ему не нравиться. Может быть полезно посмотреть на это https://github.com/AdaCore/gprbuild/issues/5#issuecomment-223049206 Если делать руками cgpr, вот что мне выдает gprconfig для GNAT GPL 2016 ARM -- This gpr configuration file was generated by gprconfig -- using this command line: -- gprconfig --batch -o /tmp/aaa/bin/GNAT-TEMP-000001.TMP --target=arm-eabi --config=ada,, -- from /tmp/aaa configuration project Default is for Target use "arm-eabi"; for Toolchain Version ("Ada") use "GNAT 2016"; for Runtime Library Dir ("Ada") use "/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro//adalib/"; for Runtime Source Dirs ("Ada") use ("/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro//adainclude/"); for Archive Builder use ("arm-eabi-ar", "cr"); for Archive Builder Append Option use ("q"); for Archive Indexer use ("arm-eabi-ranlib"); for Archive Suffix use ".a"; for Library Support use "static only"; for Library Builder use "/home/max/net/gnat-arm/libexec/gprbuild/gprlib"; for Default Language use "Ada"; type Loaders is ("ROM", "SAMBA", "USER"); Loader : Loaders := external ("LOADER", "ROM"); package Builder is for Executable Suffix use ""; end Builder; package Compiler is for Driver ("Ada") use "/home/max/net/gnat-arm/bin/arm-eabi-gcc"; for Language Kind ("Ada") use "unit based"; for Dependency Kind ("Ada") use "ALI File"; for Leading Required Switches ("Ada") use ("-c", "-x", "ada", "-gnatA") & Compiler'Leading Required Switches ("Ada"); for Mapping File Switches ("Ada") use ("-gnatem="); for Mapping Spec Suffix ("Ada") use "%s"; for Mapping Body Suffix ("Ada") use "%b"; for Config File Switches ("Ada") use ("-gnatec="); for Include Path File ("Ada") use "ADA PRJ INCLUDE FILE"; for Multi Unit Switches ("Ada") use ("-gnateI"); for Multi Unit Object Separator ("Ada") use "~"; for Config Body File Name ("Ada") use "pragma Source File Name Project (%u, Body File Name => ""%f"");"; for Config Spec File Name ("Ada") use "pragma Source File Name Project (%u, Spec File Name => ""%f"");"; for Config Body File Name Index ("Ada") use "pragma Source File Name Project (%u, Body File Name => ""%f"", Index => %i);"; for Config Spec File Name Index ("Ada") use "pragma Source File Name Project (%u, Spec File Name => ""%f"", Index => %i);"; for Config Body File Name Pattern ("Ada") use "pragma Source File Name Project " & " (Body File Name => ""*%b""," & " Casing => %c," & " Dot Replacement => ""%d"");"; for Config Spec File Name Pattern ("Ada") use "pragma Source File Name Project " & " (Spec File Name => ""*%s""," & " Casing => %c," & " Dot Replacement => ""%d"");"; for Config File Unique ("Ada") use "False"; for PIC Option ("Ada") use ("-fPIC"); for Leading Required Switches ("Ada") use Compiler'Leading Required Switches ("Ada") & ("--RTS=/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro/"); Common Required Switches := ("-mlittle-endian", "-mhard-float", "-mcpu=cortex-m4", "-mfpu=fpv4-sp-d16", "-mthumb"); for Leading Required Switches ("Ada") use Compiler'Leading Required Switches ("Ada") & Common Required Switches; for Leading Required Switches ("C") use Compiler'Leading Required Switches ("C") & Common Required Switches; end Compiler; package Naming is for Spec Suffix ("Ada") use ".ads"; for Body Suffix ("Ada") use ".adb"; for Casing use "lowercase"; for Dot Replacement use "-"; end Naming; package Binder is for Required Switches ("Ada") use Binder'Required Switches ("Ada") & ("gnatbind prefix=arm-eabi-"); for Objects Path File ("Ada") use "ADA PRJ OBJECTS FILE"; for Driver ("Ada") use "/home/max/net/gnat-arm/libexec/gprbuild/gprbind"; for Required Switches ("Ada") use Binder'Required Switches ("Ada") & ("--RTS=/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro/"); end Binder; package Linker is for Driver use Compiler'Driver ("Ada"); for Map File Option use "-Wl,-Map,"; for Response File Format use "GCC GNU"; for Max Command Line Length use "8192"; for Required Switches use Linker'Required Switches & ("-L/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro//adalib", "-nolibc", "-nostartfiles") & Compiler.Common Required Switches; case Loader is when "USER" => when others => for Required Switches use Linker'Required Switches & ("-L", "/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro//../bsps/sam4s/bsp/", "-T", "memory-map.ld", "-T", "common-" & Loader & ".ld"); end case; end Linker; package Clean is -- Remove the files generated by gnatinspect (in the context of GPS) for Artifacts In Object Dir use Clean'Artifacts In Object Dir & ("gnatinspect.*"); for Source Artifact Extensions ("Ada") use (".dg", ".rep", ".stdout", ".stderr"); for Object Artifact Extensions ("Ada") use (".s", ".ci", ".gcno"); end Clean; end Default; --
Здравствуйте, Вадим! > gnatmake вообще не понимает файлы проектов. Ну почему же "вообще"?! На директивы, задающие имена каталогов и т.п. - адекватно реагирует. > имеет смысл добавлять -v и анализировать вывод, $ gprconfig -v --target=arm-linux-gnueabihf --config=Ada Only compilers matching target arm-linux-gnueabihf will be preserved Попытался проанализировать. Утилита просматривает все каталоги из переменной $PATH и ищет там компилляторы. На каком основании она выбирает компилляторы - я не знаю. Утилита нашла несколько компилляторов в папке /usr/bin и принялась проверять их по каким-то условиям. Из 7 кандидатов отобрала вот этот: GCC is candidate: filename=arm-linux-gnueabi-gcc target: executing "arm-linux-gnueabi-gcc -dumpmachine" output=<use -v -v> no match target: grep matched="arm-linux-gnueabihf" version: executing "arm-linux-gnueabi-gcc -v" output=<use -v -v> no match version: nogrep no match version: grep matched="5.4.0" languages: constant := C Filter=Ada,,,,: language does not match Adding compiler to interactive menu C,5.4.0,,/usr/bin/,GCC selected=FALSE Причём, даже у него: "Filter=Ada,,,,: language does not match". У остальных кандидатов два варианта: 1) Ignore compiler, since couldn't guess its version 2) Target for this compiler does not match --target В подготовленном файле *.cgpr упоминание об Ada вообще отсутствует. Наприер, в пакете имён файлов: package Naming is for Spec_Suffix ("C") use ".h"; for Body_Suffix ("C") use ".c"; end Naming; И я, ручками, дописывал сюда для Ada по аналогии. > что бы подправить базу данных gprbuild или системные пакеты что > бы Ada находилась самостоятельно. Если можно - поподробнее! Что это за база и как её править ?
Здравствуйте, Максим! > Может быть полезно посмотреть на это На мой взгляд, тут ситуация несколько иная. У TS не собираются ЕГО библиотеки, а у меня - не видны готовые СИСТЕМНЫЕ библиотеки. То, что эти библиотеки есть, доказывается тем фактом, что при ручной сборки, готовый ELF собирается. Странное дело: если я запускаю конфигуратор так: gprconfig --batch -o ~/tmp/GNAT-TEMP-000001.TMP --target=arm-linux-gnueabihf --config=Ada,, То он выдаёт: Error: no matching compiler found for --config=Ada,,,, Причём, компиллятор arm-linux-gnueabi-gcc он проверяет дважды(?) и первый раз выдаёт сообщение Filter=Ada,,,,: language does not match а второй раз - Ignore compiler, since couldn't guess its version А если убираю параметр --batch , то конфигурация по умолчанию создаётся, но в ней нет упоминания про Ada. --
> > gnatmake вообще не понимает файлы проектов. > Ну почему же "вообще"?! Если в строке gnatmake присутствует -P, то просто вызывается из-под полы gprbuild и все. > > Попытался проанализировать. Утилита просматривает все каталоги из переменной $PATH и ищет там компилляторы. На каком основании она выбирает компилляторы - я не знаю. См.документацию, файл gprbuild_ug. > Если можно - поподробнее! Что это за база и как её править ? См. там же.
Здравствуйте, Максим! > вот что мне выдает gprconfig для GNAT GPL 2016 ARM Я взял за основу Ваш файл настроек и обработал его последовательно тремя инструментами: рашпилем напильником надфилем И - о чудо - сборка прошла! Насколько я понял, Вы готовите программу для встроенной системы, без линуха? Там про какое-то run-time окружение говорилось.. Осталось только разобраться, почему у меня Cnat-GPS умирает через 30 секунд работы и можно будет браться за что-то серьёзное... Если Вам любопытно, то вот прилагаю текст файла настроек, с которым у меня пошла сборка. Можете натравить на него diff, или meld - сразу всё станет ясно. -- This gpr configuration file was generated by gprconfig -- using this command line: -- gprconfig --batch -o ~/tmp/GNAT-TEMP-000001.tmp --target=arm-linux-gnueabi --config=ada,, -- from /tmp/aaa configuration project Default is for Target use "arm-linux-gnueabihf"; for Toolchain_Version ("Ada") use "GNAT 2016"; for Runtime_Library_Dir ("Ada") use "//usr/lib/gcc-cross/arm-linux-gnueabihf/5/adalib/"; -- for Runtime_Source_Dirs ("Ada") use ("/usr/lib/gcc-cross/arm-linux-gnueabihf/5/adainclude/"); for Archive_Builder use ("arm-linux-gnueabi-ar", "cr"); for Archive_Builder_Append_Option use ("q"); for Archive_Indexer use ("arm-linux-gnueabi-ranlib"); for Archive_Suffix use ".a"; for Library_Support use "static_only"; for Library_Builder use "/usr/lib/gprbuild/gprlib"; for Default_Language use "Ada"; type Loaders is ("ROM", "SAMBA", "USER"); Loader : Loaders := external ("LOADER", "ROM"); package Builder is for Executable_Suffix use ""; end Builder; package Compiler is for Driver ("Ada") use "/usr/bin/arm-linux-gnueabi-gcc"; for Language_Kind ("Ada") use "unit_based"; for Dependency_Kind ("Ada") use "ALI_File"; for Leading_Required_Switches ("Ada") use ("-c", "-x", "ada", "-gnatA") & Compiler'Leading_Required_Switches ("Ada"); for Mapping_File_Switches ("Ada") use ("-gnatem="); for Mapping_Spec_Suffix ("Ada") use "%s"; for Mapping_Body_Suffix ("Ada") use "%b"; for Config_File_Switches ("Ada") use ("-gnatec="); for Include_Path_File ("Ada") use "ADA_PRJ_INCLUDE_FILE"; for Multi_Unit_Switches ("Ada") use ("-gnateI"); for Multi_Unit_Object_Separator ("Ada") use "~"; for Config_Body_File_Name ("Ada") use "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"");"; for Config_Spec_File_Name ("Ada") use "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"");"; for Config_Body_File_Name_Index ("Ada") use "pragma Source_File_Name_Project (%u, Body_File_Name => ""%f"", Index => %i);"; for Config_Spec_File_Name_Index ("Ada") use "pragma Source_File_Name_Project (%u, Spec_File_Name => ""%f"", Index => %i);"; for Config_Body_File_Name_Pattern ("Ada") use "pragma Source_File_Name_Project " & " (Body_File_Name => ""*%b""," & " Casing => %c," & " Dot_Replacement => ""%d"");"; for Config_Spec_File_Name_Pattern ("Ada") use "pragma Source_File_Name_Project " & " (Spec_File_Name => ""*%s""," & " Casing => %c," & " Dot_Replacement => ""%d"");"; for Config_File_Unique ("Ada") use "False"; for PIC_Option ("Ada") use ("-fPIC"); -- for Leading_Required_Switches ("Ada") use -- Compiler'Leading_Required_Switches ("Ada") & ("--RTS=/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro/"); -- Common_Required_Switches := ("-mlittle-endian", "-mhard-float", --- "-mcpu=cortex-m4", "-mfpu=fpv4-sp-d16", "-mthumb"); -- for Leading_Required_Switches ("Ada") use -- Compiler'Leading_Required_Switches ("Ada") & -- Common_Required_Switches; -- for Leading_Required_Switches ("C") use -- Compiler'Leading_Required_Switches ("C") & -- Common_Required_Switches; end Compiler; package Naming is for Spec_Suffix ("Ada") use ".ads"; for Body_Suffix ("Ada") use ".adb"; for Casing use "lowercase"; for Dot_Replacement use "-"; end Naming; package Binder is for Required_Switches ("Ada") use Binder'Required_Switches ("Ada") & ("gnatbind_prefix=arm-linux-gnueabihf-"); for Objects_Path_File ("Ada") use "ADA_PRJ_OBJECTS_FILE"; for Driver ("Ada") use "/usr/lib/gprbuild/gprbind"; -- for Required_Switches ("Ada") use -- Binder'Required_Switches ("Ada") & ("--RTS=/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro/"); end Binder; package Linker is for Driver use Compiler'Driver ("Ada"); for Map_File_Option use "-Wl,-Map,"; for Response_File_Format use "GCC_GNU"; for Max_Command_Line_Length use "8192"; -- for Required_Switches use Linker'Required_Switches & -- ("-L/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro//adalib", "-nolibc", "-nostartfiles") & -- Compiler.Common_Required_Switches; -- case Loader is -- when "USER" => -- when others => -- for Required_Switches use Linker'Required_Switches & -- ("-L", "/home/max/net/gnat-arm/arm-eabi/lib/gnat/ravenscar-sfp-sam4sxplainedpro//../bsps/sam4s/bsp/", -- "-T", "memory-map.ld", -- "-T", "common-" & Loader & ".ld"); -- end case; end Linker; package Clean is -- Remove the files generated by gnatinspect (in the context of GPS) for Artifacts_In_Object_Dir use Clean'Artifacts_In_Object_Dir & ("gnatinspect.*"); for Source_Artifact_Extensions ("Ada") use (".dg", ".rep", ".stdout", ".stderr"); for Object_Artifact_Extensions ("Ada") use (".s", ".ci", ".gcno"); end Clean; end Default;
Это, конечно, хорошо, но этот сизифов труд имеет смысл только если есть желание разобраться, как работает система компиляции в GNAT. Рекомендую таки настроить gprbuild. Повторюсь, что это не сложно. Поддерживаю Василия в предложении почитать документацию! Сообщение "Ignore compiler, since couldn't guess its version" похоже на то, о чем пишут в github issue, на которое я ссылался выше. Вероятно, как только gprbuild опознает Ваш компилятор, то и системные библиотеки найдутся. Посмотрите файл share/gprconfig/compilers.xml, а в нем <compiler description> <name>GNAT</name> <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*....)?gnatmake</executable> <version> <external>${PREFIX}gnatls -v --version</external> <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep> </version> <languages>Ada</languages> <variable name="gcc version"> <external>${PREFIX}gcc -v</external> <grep regexp="^[-\w]*gcc \S+ (\S+)" group="1"></grep> </variable> <runtimes default="default,kernel,native"> Это инструкции для gprconfig, как найти компилятор Ады. Сравните с тем, что у Вас выдает -v -v после GNAT is candidate:... Добейтесь, чтобы этот "кандидат" "срабатывал" путем правки этих строк в compilers.xml. Вероятно нужно будет сделать то, что написано в github issue. И проверьте результирующий cgpr, сверив его с уже работающим "ручным" образцом. Чтв 30 Мар 2017 07:25:26 +0300, sv [email protected] [ada ru] <ada [email protected]> написал: > > Насколько я понял, Вы готовите программу для встроенной системы, без линуха? Там про какое-то run-time окружение говорилось.. > Я портирую bareboard runtime на новую платку WifiMCU. https://github.com/reznikmm/embedded-runtimes Сейчас работа стала, жду JTAG из Китая :) Оправдываясь скажу, что окирпичил железяку залив не Адскую прошивку, а Си-шную :) > Осталось только разобраться, почему у меня Cnat-GPS умирает через 30 секунд работы и можно будет браться за что-то серьёзное... > 1) посмотрите последний log файла в $HOME/.gps/ 2) убедитесь, что запускаете не gps exe а shell файл с именем gps --
Здравствуйте, Максим! > 1) посмотрите последний log файла в $HOME/.gps/ Похоже, что какие-то проблемы с библиотекой GTK+. Если просто запустить gps, загрузив проект, но не открывая окно проекта слева - она просто ждёт и всё. Как только открываешь деревяшку проекта - начинают сыпаться сообщения вида sys:1: Warning: Source ID 3821 was not found when attempting to remove it Они всегда выскакивают во время движения мышкой. Если открыть на редактирование один файл исходного текста - ничего страшного не происходит. Но, если открыть ещё хотя бы один, то имена файлов на язычках закладок исчезают, курсор превращается в "часики" и через коротко время gps падает. При этом в конце лог-файла $HOME/.gps/ вижу следующие сообщения: [SRC_EDITOR_MODULE] 2/806 Open file /home/lary/projects/ada/ada_first/src/hello.adb Focus=TRUE (10:17:16.486) [UNEXPECTED_EXCEPTION.EXCEPTIONS] 2/809 Unexpected exception: Exception name: CONSTRAINT_ERROR _UNEXPECTED_EXCEPTION.EXCEPTIONS_ Message: gtkada-mdi.adb:6929 tag check failed (10:17:16.510) [STANDARD_HOOKS] 2/810 No file editor was registered (10:17:16.510) [UNEXPECTED_EXCEPTION.EXCEPTIONS] 4/877 Unexpected exception: Exception name: CONSTRAINT_ERROR _UNEXPECTED_EXCEPTION.EXCEPTIONS_ Message: gtkada-mdi.adb:6929 tag check failed (10:17:40.616) [UNEXPECTED_EXCEPTION.EXCEPTIONS] 5/878 Unexpected exception: Exception name: STORAGE_ERROR _UNEXPECTED_EXCEPTION.EXCEPTIONS_ Message: s-intman.adb:139 explicit raise (10:17:40.631) > 2) убедитесь, что запускаете не gps_exe а shell файл с именем gps Странно... Мой пакетный менеджер показывает, что в состав пакета gnat-gps входят только следующие файлы: /usr/bin/gnat-gps /usr/share/doc/gnat-gps/changelog.Debian.gz /usr/share/doc/gnat-gps/copyright /usr/share/man/man1/gnat-gps.1.gz /usr/share/menu/gnat-gps И запускается именно gnat-gps...
On 03/31/2017 06:27 AM, [email protected] [ada_ru] wrote: > >> 2) убедитесь, что запускаете не gps_exe а shell файл с именем gps > > Странно... Мой пакетный менеджер показывает, что в состав пакета > gnat-gps входят только следующие файлы: > Ну так задайте вопрос авторам этого пакета ;) А лучше - поставьте GNAT GPL и используйте проверенную версию GPS из него.
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти