OberonCore
https://forum.oberoncore.ru/

XDS-C Как компилировать?
https://forum.oberoncore.ru/viewtopic.php?f=30&t=5383
Страница 2 из 2

Автор:  GameHunter [ Среда, 20 Июнь, 2018 17:59 ]
Заголовок сообщения:  Re: XDS-C Как компилировать?

Н-дааа...

Хелло ворлд я скомпилировал. Не подскажите, как делать нативные приложения для Win64?

Автор:  Kemet [ Среда, 20 Июнь, 2018 20:02 ]
Заголовок сообщения:  Re: XDS-C Как компилировать?

GameHunter писал(а):
Н-дааа...

Хелло ворлд я скомпилировал. Не подскажите, как делать нативные приложения для Win64?

Код:
MODULE Program;
BEGIN
    TRACE( "Hello, World!", 2018 );
END Program.

    System.DoCommands
    Compiler.Compile Program.Mod ~
    Linker.Link --fileFormat=PE64CUI --fileName=program.exe --extension=GofWw --displacement=401000H
        Builtins Trace Kernel32 Heaps Modules Objects Kernel KernelLog Streams Commands Files WinFS Clock Dates Reals Strings Diagnostics BitSets
        StringPool ObjectFile GenericLinker Reflection Loader Traps Program ~

    FSTools.CloseFiles program.exe ~
    ~~

Автор:  Иван Денисов [ Суббота, 30 Июнь, 2018 07:35 ]
Заголовок сообщения:  Re: XDS-C Как компилировать?

Чтобы XDS 2.6 хорошо работал на x64 надо добавить ключ -m32 в шаблон для сборки.
/usr/local/xds/bin/xc.tem
чтобы стало вот так:
Код:
...
!else
  ! "$(TARGET) : $(OBJ) $(XDSLIB)\n"
  !if (env_target="x86linux") then
    ! "\tgcc $(LFLAGS) -o $(TARGET) $(OBJ) $(XLIBS) $(TSLIBS) $(XDSLIB) $(XMACLIBS) -lm -lncurses -m32\n"
  !elsif (env_target="linux") or (env_target="aix") then
    ! "\tgcc $(LFLAGS) -o $(TARGET) $(OBJFF) $(OBJ) $(XLIBS) $(XDSLIB) -lm -m32\n"
  !else
    ! "\tcc $(LFLAGS) -o $(TARGET) $(OBJ) $(XLIBS) $(XDSLIB) -lm -m32\n"
  !end
!end
...


тогда без проблем проходит команда xc =m hello.ob2:
Код:
dia@lenovo:/usr/local/xds/samples/oberon$ xc =m hello.ob2
O2/M2 development system v2.60 TS  (c) 1991-2011 Excelsior, LLC. (build 03.02.2012)
XDS Oberon-2 v2.40 [x86, v1.50] - build 03.02.2012
Compiling "hello.ob2"
no errors, no warnings, lines    8, time  0.00
gcc  -o hello hello.o  /usr/local/xds/lib/x86/libts.a /usr/local/xds/lib/x86/libxds.a  -lm -lncurses -m32


Результат:
Код:
dia@lenovo:/usr/local/xds/samples/oberon$ ./hello
Привет мир!!!

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/