OberonCore https://forum.oberoncore.ru/ |
|
XDS-C Как компилировать? https://forum.oberoncore.ru/viewtopic.php?f=30&t=5383 |
Страница 1 из 2 |
Автор: | perloid [ Вторник, 07 Апрель, 2015 18:19 ] |
Заголовок сообщения: | XDS-C Как компилировать? |
hello.ob2 Код: <*+ MAIN *> MODULE hello; IMPORT InOut; BEGIN InOut.WriteString ("Hello World!"); InOut.WriteLn; END hello. makefile Код: LIB=C:/bin/XDS/INCLUDE all: translate build translate: xm hello.ob2 build: gcc hello.c -I$(LIB) под cygwin: транслирует ок но при компиляции ошибка Код: xm hello.ob2 XDS Oberon-2 v2.40 [ANSI C v4.20] - build 10.05.2005 Compiling "hello.ob2" no errors, no warnings, lines 9, time 0.01 gcc hello.c -IC:/bin/XDS/INCLUDE /tmp/cchkh3HL.o:hello.c:(.text+0x35): undefined reference to `X2C_BEGIN' /tmp/cchkh3HL.o:hello.c:(.text+0x35): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `X2C_BEGIN' /tmp/cchkh3HL.o:hello.c:(.text+0x3a): undefined reference to `InOut_BEGIN' /tmp/cchkh3HL.o:hello.c:(.text+0x3a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `InOut_BEGIN' /tmp/cchkh3HL.o:hello.c:(.text+0x46): undefined reference to `X2C_MODULE' /tmp/cchkh3HL.o:hello.c:(.text+0x46): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `X2C_MODULE' /tmp/cchkh3HL.o:hello.c:(.text+0x57): undefined reference to `InOut_WriteString' /tmp/cchkh3HL.o:hello.c:(.text+0x57): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `InOut_WriteString' /tmp/cchkh3HL.o:hello.c:(.text+0x5c): undefined reference to `InOut_WriteLn' /tmp/cchkh3HL.o:hello.c:(.text+0x5c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `InOut_WriteLn' /tmp/cchkh3HL.o:hello.c:(.text+0x61): undefined reference to `X2C_EXIT' /tmp/cchkh3HL.o:hello.c:(.text+0x61): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `X2C_EXIT' collect2: ошибка: выполнение ld завершилось с кодом возврата 1 makefile:9: ошибка выполнения рецепта для цели «build» make: *** [build] Ошибка 1 в visual studio 2013 comunity edition пробовал создать проект прописал путь к include аналогичные ошибки Код: Warning 1 warning LNK4031: no subsystem specified; CONSOLE assumed c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\LINK Project1
Error 2 error LNK2019: unresolved external symbol _X2C_BEGIN referenced in function _main c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\hello.obj Project1 Error 3 error LNK2019: unresolved external symbol _X2C_EXIT referenced in function _main c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\hello.obj Project1 Error 4 error LNK2019: unresolved external symbol _X2C_MODULE referenced in function _main c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\hello.obj Project1 Error 5 error LNK2019: unresolved external symbol _InOut_WriteLn referenced in function _main c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\hello.obj Project1 Error 6 error LNK2019: unresolved external symbol _InOut_WriteString referenced in function _main c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\hello.obj Project1 Error 7 error LNK2019: unresolved external symbol _InOut_BEGIN referenced in function _main c:\Users\user\documents\visual studio 2013\Projects\Project1\Project1\hello.obj Project1 Error 8 error LNK1120: 6 unresolved externals c:\users\user\documents\visual studio 2013\Projects\Project1\Debug\Project1.exe Project1 |
Автор: | GameHunter [ Пятница, 15 Июнь, 2018 16:41 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
У меня с gcc из mingw-w64 точно такие же ошибки |
Автор: | Владимир Ситников [ Пятница, 15 Июнь, 2018 18:20 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
perloid писал(а): но при компиляции ошибка Документацию читать пробовали? https://www.excelsior-usa.com/doc/xds/xm003.html#0030 |
Автор: | GameHunter [ Суббота, 16 Июнь, 2018 15:32 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Пробовал, не помогло. XDS-C отрабатывает без ошибок, ошибки возникают когда я пытаюсь (вручную, а не через скрипты XDS'а) скомпилировать полученные .c файлы компилятором gcc из компректа MinGW-w64. Я не знаком ни с си, ни с линуксом, пытаюсь разобраться "с нуля". Вы можете помочь по существу? |
Автор: | Oleg N. Cher [ Воскресенье, 17 Июнь, 2018 16:00 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
GameHunter, приветствую! Есть 3 известных транслятора Оберона / Оберона-2 в Си (не считая двух трансляторов Оберона-07 — OBNC и Восток):
Берётся здесь: https://github.com/Oleg-N-Cher/OfrontPlus |
Автор: | Kemet [ Воскресенье, 17 Июнь, 2018 16:26 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Есть ещё транстлятор Активный Оберн -> Си в А2. Но там отсутствует Сишная обвязка рантайма. Думаю, если Феликсу написать, он поделится, Сишными файликами, если есть)). Для каких целей, в данном топике, требуется транслятор в Си? |
Автор: | GameHunter [ Понедельник, 18 Июнь, 2018 11:55 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Большое спасибо. Я ищу компилятор черес С ие как самоцель, а только из-за отсутствя Oberon+IDE для Win64. XDS-C привлекает тем, что я использую Native XDS. Соответственно, есть надеждя получить уже отработанный код для XDS-C -> Win64. Олег, спасибо за предложение, я посмотрел мельком вашу разработку, где-то на ваших форумах отмечалось, что пока что нет поддержки автоматической сборки мусора. Это всё ещё актуальная информация? И ещё, Ofront+ поддерживает комплексные числа? А что уважаемые специалисты думают про Vishap Oberon Compiler? Вроде бы он хорошо поддерживается, и у меня получилось собрать его под cygwin (не получилось под mingw - я просто не знаю как в линуксе что-то правильно сделать) |
Автор: | Владимир Ситников [ Понедельник, 18 Июнь, 2018 12:45 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
GameHunter писал(а): Пробовал, не помогло. XDS-C отрабатывает без ошибок, ошибки возникают когда я пытаюсь (вручную, а не через скрипты XDS'а) скомпилировать полученные .c файлы компилятором gcc из компректа MinGW-w64. Я не знаком ни с си, ни с линуксом, пытаюсь разобраться "с нуля". Вы можете помочь по существу? И как же так пробовали? Давайте читать документацию по слогам. https://www.excelsior-usa.com/doc/xds/xm003.html#0030 Цитата: The XDS run-time library is included in an XDS package in C source form, i.e. for each library module its header file and C source file are provided. For Unix platforms, a pre-built library file containing object files may be included. This is not the case for the Windows platform, because different C compilers support different calling and naming conventions. We recommend to build the library file for your C compiler or several library files for various C compilers or memory models. The LIB/C subdirectory or your XDS installation contains makefiles which can be used for that purpose. It may be necessary to change a C compiler name or compiler options in this file. Тут говорится, что в поставке XDS идут исходные коды сборщика мусора и т.п. Вы же считаете, что "полученный C файл будет самодостаточен". Разумеется, он не самодостаточен, а использует XDS библиотеку. Читаем документацию далее: Цитата: See Building a program for more information О, а это похоже на детальное описание того, как компилировать. И что мы там видим? Цитата: cc hello.c -Ic:\xds\include c:\xds\lib\libxds.lib Святые макароны! Оказывается при ручном вызове C компилятора нужно указывать путь к XDS include И путь к libxds.lib И где же libxds в строке "gcc hello.c -I$(LIB)"? Полагаю, нужно добавить libxds тем или иным образом (-L или -l). |
Автор: | Kemet [ Понедельник, 18 Июнь, 2018 14:27 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
GameHunter писал(а): Большое спасибо. Я ищу компилятор черес С ие как самоцель, а только из-за отсутствя Oberon+IDE для Win64. A2 позволяя создавать приложения для Windows и Linux для архитектуры x86 ( 32/64 бит ), консольные и графические, с модулями, статически слинкованными или динамически загружаемыми, не привлекая сторонних средств.
|
Автор: | GameHunter [ Понедельник, 18 Июнь, 2018 16:29 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Ещё раз спасибо за ответы. Я, конечно, почитал документацию и добавил пути XDS\include\c и XDS\c\c в пути, по которым компилятор ищет исходники (и даже на всякий случай скопировал эти .c и .h файлы в каталог компилируемого hello world). Так что ошибки проявляются и при доступных исходниках RTL. Про .lib-файлы я не понял - как можно сделать 64-разрядкую программу из 32-разрядных скомпилированных библиотек? (Я ведь правильно понимаю, что в .lib-файлах содержится уже откопмилированный код, который потом линкуется в екзешник?) A2, насколько я понял, - это самостоятельная ОС. Её эмуляция для виндовс WinAOS существует только в 32-разрядном варианте. Вроде бы, есть 64-разрядный WinAOS, но он находится в стадии разработки. Я прав? |
Автор: | Иван Денисов [ Понедельник, 18 Июнь, 2018 17:22 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
XDS-C, если я правильно помню, только для x86, так что не выйдет собрать 64-битное приложение, как вы хотите. |
Автор: | Kemet [ Понедельник, 18 Июнь, 2018 17:35 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
GameHunter писал(а): A2, насколько я понял, - это самостоятельная ОС. Её эмуляция для виндовс WinAOS существует только в 32-разрядном варианте. Вроде бы, есть 64-разрядный WinAOS, но он находится в стадии разработки. Я прав? Нет, А2 работает как обычное приложение в соответствующей ОС, никакой эмуляции. И средства разработки из А2 позволяют создавать кросплатформенные нативные приложения для поддерживаемых целевых платформ. |
Автор: | Wlad [ Понедельник, 18 Июнь, 2018 21:40 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Kemet писал(а): Есть ещё транстлятор Активный Оберн -> Си в А2 Я где-то потерялся (даже - без батута...)... Про какое изделие речь? |
Автор: | Oleg N. Cher [ Понедельник, 18 Июнь, 2018 22:29 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
GameHunter писал(а): Большое спасибо. Я ищу компилятор через С не как самоцель, а только из-за отсутстия Oberon+IDE для Win64. Нормальное решение. Мы ж тоже с Си связались только потому, что нет хорошей мультитаргетной реализации Оберона. А вот смотрите, как выглядит моя "IDE" на основе BlackBox/Ofront+GameHunter писал(а): Олег, спасибо за предложение, я посмотрел мельком вашу разработку, где-то на ваших форумах отмечалось, что пока что нет поддержки автоматической сборки мусора. Это всё ещё актуальная информация? Нет. Это устаревшая информация. Сборщик мусора уже работает.GameHunter писал(а): И ещё, Ofront+ поддерживает комплексные числа? Ну, в той же мере, в которой и Оберон. Смотрите, например, здесь:И ещё в модули ComplexMath.Mod и LComplexMath.Mod из OO2C. Никакой специальной поддержки комплексных вычислений в Ofront+ нет, также как и во всех известных мне трансляторах и компиляторах Оберона. GameHunter писал(а): А что уважаемые специалисты думают про Vishap Oberon Compiler? Вроде бы он хорошо поддерживается, и у меня получилось собрать его под cygwin (не получилось под mingw - я просто не знаю как в линуксе что-то правильно сделать) Он хорошо поддерживается? А Вы видели, когда был последний коммит и как обошлись с последним баг-репортом? Его попытались починить, получили в результате наведённые ещё более страшные баги и просто откатили всё назад. Насколько мне известно, у voc'а сейчас только формальная поддержка, на словах. Дэйв Браун, который сделал очень много для проекта voc, уже им не занимается.Внутри voc'а крутится тот же Ofront, который я облагораживаю в проекте Ofront+, и я стараюсь использовать наработки команды voc'а в Ofront+. В своё время я хотел присоединиться к команде voc, но, к сожалению, наши взгляды на разработку не совпали. voc позиционируют как компилятор, и народ ведётся, даже не особо подозревая, что там внутри крутится такая же трансляция в Си. Так что маркетинговый ход с упрятыванием трансляции в Си вовнутрь — вполне работает в этом случае. Что хорошего в voc'е — это сайт и документация. У проекта Ofront+ с этим пока всё обстоит поскромнее. Ещё до определённой степени хорошо, что voc умеет сам вызывать GCC. С Ofront+ Вам нужно будет писать мейк-файлы или батники самостоятельно (такая ли это большая проблема?). Ofront+ Вы тоже сможете собрать под всё, даже под Raspbian. |
Автор: | Comdiv [ Понедельник, 18 Июнь, 2018 23:05 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Oleg N. Cher писал(а): Никакой специальной поддержки комплексных вычислений в Ofront+ нет, также как и во всех известных мне трансляторах и компиляторах Оберона. В XDS - то есть, может, этим и привлекает.Цитата: voc позиционируют как компилятор, и народ ведётся, даже не особо подозревая, что там внутри крутится такая же трансляция в Си. Так что маркетинговый ход с упрятыванием трансляции в Си вовнутрь — вполне работает в этом случае. Это уже нормальная экономика, а не просто маркетинговый ход. Если разработчику не нужно тратить время на незначащие для него детали, то это хорошо. Почему Вы не перенесёте и эти наработки? Трудоёмко?
|
Автор: | Oleg N. Cher [ Вторник, 19 Июнь, 2018 01:15 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Comdiv писал(а): В XDS - то есть, может, этим и привлекает. Зато не привлекает закрытостью и отсутствием поддержки архитектур x64 и ARM.Comdiv писал(а): Если разработчику не нужно тратить время на незначащие для него детали, то это хорошо. Почему Вы не перенесёте и эти наработки? Трудоёмко? Я предпочитаю вызывать Си-компилятор самостоятельно. По нескольким причинам. И потому, что он может оказаться не GCC. И потому, что могут понадобиться дополнительные опции, например, для отладчика. Кроме того, у меня ещё не сложилось чёткого видения, как это реализовать лучше всего. Так, как это сделано в voc — жёсткая привязка к папкам, к именам, к структуре проекта — мне не нравится.Но с вызовом Си-компилятора ладно. Это можно сделать. Меня возмущает другое — как люди ведутся на то, что voc это "компилятор". И везде пишут: "voc компилятор, компилятор". "Ура, новый компилятор для x64"! Ан нет, господа, вовсе даже не новый... P.S. Видел там на форуме, Ваш Восток вообще трудно и собирать, и пользоваться им. Половину не понял из того, что там ему надо. Так что буду рад, если Вы как-то упростите этот процесс. |
Автор: | Kemet [ Вторник, 19 Июнь, 2018 05:29 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Wlad писал(а): Kemet писал(а): Есть ещё транстлятор Активный Оберн -> Си в А2 Я где-то потерялся (даже - без батута...)... Про какое изделие речь? |
Автор: | Comdiv [ Вторник, 19 Июнь, 2018 10:17 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Oleg N. Cher писал(а): Я предпочитаю вызывать Си-компилятор самостоятельно. По нескольким причинам. И потому, что он может оказаться не GCC. И потому, что могут понадобиться дополнительные опции, например, для отладчика. Я сделал возможность указать транслятор Си, не запрещая генерировать Си-код и собирать отдельно.Цитата: Кроме того, у меня ещё не сложилось чёткого видения, как это реализовать лучше всего. Так, как это сделано в voc — жёсткая привязка к папкам, к именам, к структуре проекта — мне не нравится. Тогда понятно. У меня именно явное указание папок, что, наверно, вызывает дополнительную сложность у других.Oleg N. Cher писал(а): Но с вызовом Си-компилятора ладно. Это можно сделать. Меня возмущает другое — как люди ведутся на то, что voc это "компилятор". И везде пишут: "voc компилятор, компилятор" Где ведутся? Вроде бы никто не скрывает сути http://oberon.vishap.am/ Цитата: By using currently stable C backend voc is easily ported to any platform for which C compiler exists. Да и компилятор - понятие широкое.Oleg N. Cher писал(а): P.S. Видел там на форуме, Ваш Восток вообще трудно и собирать, и пользоваться им. viewtopic.php?f=115&t=6217&p=104500#p104500
|
Автор: | GameHunter [ Среда, 20 Июнь, 2018 17:36 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
Спасибо за советы. Я пока склоняюсь к A2, т.к. система поддерживает комплексные числа (это необходимо), должна иметь хорошо реализованную многопоточность (ведь активный оберон для неё и создавался) и, как говорят, имеет поддержку Win32/Win64. Есть ли хорошая документация по средствам разработки приложений? Ни в самой A2OS, ни на их сайте я её не нашёл... |
Автор: | Kemet [ Среда, 20 Июнь, 2018 17:51 ] |
Заголовок сообщения: | Re: XDS-C Как компилировать? |
GameHunter писал(а): Есть ли хорошая документация по средствам разработки приложений? Ни в самой A2OS, ни на их сайте я её не нашёл... В канонических Оберонах, это которые от отцов-основателей ))), канонично плохо с вменяемой документацией(. Частично есть здесь http://www.ocp.inf.ethz.ch/wiki/OCP/Home , кое что в диссертациях, нужно посмотреть в общем. Да и текущая версия языка отличается от устаревшего репорта, но нового пока нет, ибо язык еще развивается.Ну и всегда можно обменяться опытом с другими пользователями и задать вопросы, м майллист или здесь, ну и смотреть исходники. Нужно таки обобщить, да. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |