Самый простой способ компилировать программу на C в USS на z / OS - использовать утилиту xlc.Вот пример с двумя параметрами командной строки -v и -qphaseid, которые показывают информацию о версии утилиты и компонентах компилятора, которые были задействованы в процессе компиляции:
xlc -v -c -qphaseid a.c
FSUM0000I Utility(xlc) Level(D170323.1712)
exec: export(export,XL_CONFIG=/bin/../usr/lpp/cbclib/xlc/etc/xlc.cfg:xlc,NULL)
exec: /usr/lpp/cbclib/xlc/exe/ccndrvr(/usr/lpp/cbclib/xlc/exe/ccndrvr,./,./a.c,*.c,CMDOPTS(DEFINE(errno=(*__errno())),NOTEST,-qoe,-qargparse,-qexecops,-qflag=i,-qhalt=16,-qnodebug,-qnolsearch,-qredir,-qlocale=POSIX,-qlongname,-qmaxmem=*,-qmemory,-qnestinc=255,-qnoexpmac,-qnoexportall,-qnogonumber,-qtarget=le,-qnolibansi,-qlist=/dev/fd1,-qnolist,-qnomargins,-qnooffset,-qnosequence,-qnoshowinc,-qsource=/dev/fd1,-qnosource,-qnoxref,-qterminal,-qnooptimize,-qplist=host,-qspill=128,-qstart,-qnoipa,DEFINE(_OPEN_DEFAULT=1),-qansialias,-qcpluscmt,-qlanglvl=extended,-qnoupconv,-qnoalias,-qnoaggregate,-qnoinfo,-qnoevents,-qrent,-qinline=auto:noreport:100:1000,-qnoinline),object(./a.o),-qphaseid,NOPPONLY,NULL)
exec: export(export,STEPLIB=CBC.SCCNCMP:CEE.SCEERUN2:CEE.SCEERUN,NULL)
exec: export(export,_C89_ACCEPTABLE_RC=4,NULL)
CCN0000(I) Product(5650-ZOS) Phase(CCNEOPTP) Level(D190612.Z2R3)
CCN0000(I) Product(5650-ZOS) Phase(CCNDRVR ) Level(D190612.Z2R3)
CCN0000(I) Product(5650-ZOS) Phase(CCNEP ) Level(D190612.Z2R3)
CCN0000(I) Product(5650-ZOS) Phase(CCNETBY ) Level(D190612.Z2R3)
CCN0000(I) Product(5650-ZOS) Phase(CCNECWI ) Level(D190612.Z2R3)
XL C / C ++Компилятор является платной функцией в z / OS, поэтому он может быть не установлен в вашей системе.Правильно установленный компилятор будет иметь действительный файл конфигурации в / bin /../ usr / lpp / cbclib / xlc / etc / xlc.cfg
Возможно, пояснение в порядке, поскольку ономожет не быть очевидным, что в USS есть две утилиты, которые вызывают компилятор XL C / C ++.
Утилита c89, работа которой контролируется несколькими переменными среды (большинство пользователей запускаютиз-за сложностей с выяснением того, как определить необходимые переменные среды)
Утилита xlc, работа которой контролируется файлом конфигурации, который проще в настройке.Большинству пользователей подойдет файл конфигурации по умолчанию, настроенный системным программистом, который установил компилятор, но если более искушенному пользователю требуется другая настройка, файл конфигурации можно скопировать в закрытый файл и изменить для удовлетворения потребностей.После изменения его можно использовать, включив в командную строку параметр -F / path_to_modified_config_file.