OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 01:06

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: XDS-C Как компилировать?
СообщениеДобавлено: Вторник, 07 Апрель, 2015 18:19 

Зарегистрирован: Воскресенье, 04 Январь, 2009 12:00
Сообщения: 52
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Пятница, 15 Июнь, 2018 16:41 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 220
Откуда: Питер
У меня с gcc из mingw-w64 точно такие же ошибки


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Пятница, 15 Июнь, 2018 18:20 

Зарегистрирован: Вторник, 27 Февраль, 2018 09:18
Сообщения: 73
perloid писал(а):
но при компиляции ошибка

Документацию читать пробовали?

https://www.excelsior-usa.com/doc/xds/xm003.html#0030


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Суббота, 16 Июнь, 2018 15:32 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 220
Откуда: Питер
Пробовал, не помогло. XDS-C отрабатывает без ошибок, ошибки возникают когда я пытаюсь (вручную, а не через скрипты XDS'а) скомпилировать полученные .c файлы компилятором gcc из компректа MinGW-w64. Я не знаком ни с си, ни с линуксом, пытаюсь разобраться "с нуля". Вы можете помочь по существу?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Воскресенье, 17 Июнь, 2018 16:00 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
GameHunter, приветствую!

Есть 3 известных транслятора Оберона / Оберона-2 в Си (не считая двух трансляторов Оберона-07 — OBNC и Восток):

    • XDS — закрытый. С ним я особо не разбирался, не помогу.

    • OOC (OO2C) — открытый, но заброшенный. Содержит известные ошибки, которые некому править в виду сложности проекта.

    • Ofront+ (усовершенствованный Ofront) — мой проект. Открытый, лицензия BSD. Готов отвечать на вопросы и посильно оказывать поддержку. Попробуйте. Он есть для Win 32/64 и Linux 32/64. В поставке некоторый набор библиотек. Тестировался (и разрабатывается) на GCC (включая 64-битный).

    Берётся здесь: https://github.com/Oleg-N-Cher/OfrontPlus


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Воскресенье, 17 Июнь, 2018 16:26 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Есть ещё транстлятор Активный Оберн -> Си в А2. Но там отсутствует Сишная обвязка рантайма. Думаю, если Феликсу написать, он поделится, Сишными файликами, если есть)).

Для каких целей, в данном топике, требуется транслятор в Си?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 11:55 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 220
Откуда: Питер
Большое спасибо. Я ищу компилятор черес С ие как самоцель, а только из-за отсутствя Oberon+IDE для Win64. XDS-C привлекает тем, что я использую Native XDS. Соответственно, есть надеждя получить уже отработанный код для XDS-C -> Win64.

Олег, спасибо за предложение, я посмотрел мельком вашу разработку, где-то на ваших форумах отмечалось, что пока что нет поддержки автоматической сборки мусора. Это всё ещё актуальная информация? И ещё, Ofront+ поддерживает комплексные числа?

А что уважаемые специалисты думают про Vishap Oberon Compiler? Вроде бы он хорошо поддерживается, и у меня получилось собрать его под cygwin (не получилось под mingw - я просто не знаю как в линуксе что-то правильно сделать)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 12:45 

Зарегистрирован: Вторник, 27 Февраль, 2018 09:18
Сообщения: 73
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).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 14:27 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
GameHunter писал(а):
Большое спасибо. Я ищу компилятор черес С ие как самоцель, а только из-за отсутствя Oberon+IDE для Win64.
A2 позволяя создавать приложения для Windows и Linux для архитектуры x86 ( 32/64 бит ), консольные и графические, с модулями, статически слинкованными или динамически загружаемыми, не привлекая сторонних средств.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 16:29 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 220
Откуда: Питер
Ещё раз спасибо за ответы. Я, конечно, почитал документацию и добавил пути XDS\include\c и XDS\c\c в пути, по которым компилятор ищет исходники (и даже на всякий случай скопировал эти .c и .h файлы в каталог компилируемого hello world). Так что ошибки проявляются и при доступных исходниках RTL. Про .lib-файлы я не понял - как можно сделать 64-разрядкую программу из 32-разрядных скомпилированных библиотек? (Я ведь правильно понимаю, что в .lib-файлах содержится уже откопмилированный код, который потом линкуется в екзешник?)

A2, насколько я понял, - это самостоятельная ОС. Её эмуляция для виндовс WinAOS существует только в 32-разрядном варианте. Вроде бы, есть 64-разрядный WinAOS, но он находится в стадии разработки. Я прав?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 17:22 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3774
XDS-C, если я правильно помню, только для x86, так что не выйдет собрать 64-битное приложение, как вы хотите.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 17:35 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
GameHunter писал(а):
A2, насколько я понял, - это самостоятельная ОС. Её эмуляция для виндовс WinAOS существует только в 32-разрядном варианте. Вроде бы, есть 64-разрядный WinAOS, но он находится в стадии разработки. Я прав?

Нет, А2 работает как обычное приложение в соответствующей ОС, никакой эмуляции. И средства разработки из А2 позволяют создавать кросплатформенные нативные приложения для поддерживаемых целевых платформ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 21:40 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 1693
Kemet писал(а):
Есть ещё транстлятор Активный Оберн -> Си в А2

Я где-то потерялся (даже - без батута...)...
Про какое изделие речь?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 22:29 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
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.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Понедельник, 18 Июнь, 2018 23:05 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
Oleg N. Cher писал(а):
Никакой специальной поддержки комплексных вычислений в Ofront+ нет, также как и во всех известных мне трансляторах и компиляторах Оберона.
В XDS - то есть, может, этим и привлекает.

Цитата:
voc позиционируют как компилятор, и народ ведётся, даже не особо подозревая, что там внутри крутится такая же трансляция в Си. Так что маркетинговый ход с упрятыванием трансляции в Си вовнутрь — вполне работает в этом случае.
Это уже нормальная экономика, а не просто маркетинговый ход. Если разработчику не нужно тратить время на незначащие для него детали, то это хорошо. Почему Вы не перенесёте и эти наработки? Трудоёмко?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Вторник, 19 Июнь, 2018 01:15 
Аватара пользователя

Зарегистрирован: Вторник, 28 Август, 2007 00:55
Сообщения: 520
Откуда: Украина, Днепропетровская обл.
Comdiv писал(а):
В XDS - то есть, может, этим и привлекает.
Зато не привлекает закрытостью и отсутствием поддержки архитектур x64 и ARM.

Comdiv писал(а):
Если разработчику не нужно тратить время на незначащие для него детали, то это хорошо. Почему Вы не перенесёте и эти наработки? Трудоёмко?
Я предпочитаю вызывать Си-компилятор самостоятельно. По нескольким причинам. И потому, что он может оказаться не GCC. И потому, что могут понадобиться дополнительные опции, например, для отладчика. Кроме того, у меня ещё не сложилось чёткого видения, как это реализовать лучше всего. Так, как это сделано в voc — жёсткая привязка к папкам, к именам, к структуре проекта — мне не нравится.

Но с вызовом Си-компилятора ладно. Это можно сделать. Меня возмущает другое — как люди ведутся на то, что voc это "компилятор". И везде пишут: "voc компилятор, компилятор". :evil: "Ура, новый компилятор для x64"! Ан нет, господа, вовсе даже не новый...

P.S. Видел там на форуме, Ваш Восток вообще трудно и собирать, и пользоваться им. Половину не понял из того, что там ему надо. Так что буду рад, если Вы как-то упростите этот процесс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Вторник, 19 Июнь, 2018 05:29 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
Wlad писал(а):
Kemet писал(а):
Есть ещё транстлятор Активный Оберн -> Си в А2

Я где-то потерялся (даже - без батута...)...
Про какое изделие речь?
Компилятор в А2.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Вторник, 19 Июнь, 2018 10:17 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1447
Откуда: Киев
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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Среда, 20 Июнь, 2018 17:36 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 220
Откуда: Питер
Спасибо за советы. Я пока склоняюсь к A2, т.к. система поддерживает комплексные числа (это необходимо), должна иметь хорошо реализованную многопоточность (ведь активный оберон для неё и создавался) и, как говорят, имеет поддержку Win32/Win64.

Есть ли хорошая документация по средствам разработки приложений? Ни в самой A2OS, ни на их сайте я её не нашёл...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XDS-C Как компилировать?
СообщениеДобавлено: Среда, 20 Июнь, 2018 17:51 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 717
Откуда: Барнаул
GameHunter писал(а):
Есть ли хорошая документация по средствам разработки приложений? Ни в самой A2OS, ни на их сайте я её не нашёл...
В канонических Оберонах, это которые от отцов-основателей ))), канонично плохо с вменяемой документацией(. Частично есть здесь http://www.ocp.inf.ethz.ch/wiki/OCP/Home , кое что в диссертациях, нужно посмотреть в общем. Да и текущая версия языка отличается от устаревшего репорта, но нового пока нет, ибо язык еще развивается.
Ну и всегда можно обменяться опытом с другими пользователями и задать вопросы, м майллист или здесь, ну и смотреть исходники.
Нужно таки обобщить, да.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB