2. Инсталляция M++

Для инсталляции M++ необходимо знать, как запускать компилятор командной строки. Иметь представление о том, что такое переменные среды вообще (переменная PATH, в частности) и умееть ими манипулировать.

2.1. Компиляция M++

Примечание. Для платформы Win32 распространяется уже скомпилированая версия M++. Поэтому для платформы Win32 нет необходимости заниматься компиляцией M++ - можно загрузить архив с уже скомпилированной версией и сразу перейти к ее настройке (см. 2.2).

Существует два способа компиляции M++:

  1. Запустить компилятор командной строки вручную, передав в качестве имен файлов маски "*.cpp" и "mxxapi/*.cpp". Это самый простой способ. При его использовании необходимо учесть всего несколько условий:
    • Указать компилятору в качестве стандартного пути к заголовочным файлам подкаталог "h" и текуший каталог ".".
    • Для платформы Win32 передать так же маску "win32\*.cpp".
    • Для Linux передать так же маску "posix/*.cpp" (эту же маску нужно использовать и на других платформах и компиляторах, поддерживающих стандарт POSIX).

    Так для создания M++ компилятором Visual C++ v.6 на платформе Win32 можно воспользоваться следующей командной строкой:

    	cl -GX -Ih -I. -O2 -D__WIN32__ -Femxxс.exe *.cpp mxxapi\*.cpp win32\*.cpp
    	

    То же самое для компилятора Borland C++ v.5.5.1:

    	bcc32 -Ih -I. -w-aus -w-par -O2 -emxxc.exe *.cpp mxxapi\*.cpp win32\*.cpp
    	

    То же самое для компилятора Watcom C++ v.11:

    	wcl386 /xs /ox /bt=nt /i=h /i=. /fe=mxxc.exe /d__WIN32__ *.cpp mxxapi\*.cpp win32\*.cpp
    	

    Для создания M++ компилятором GNU C++ на платформе Linux можно воспользоваться следующей командной строкой:

    	g++ -I h -I . -O2 -o mxxc *.cpp mxxapi/*.cpp posix/*.cpp
    	
  2. Исходные тексты M++ v.4 не содержат make-файлов, т.к. для разработки M++ v.4 использовалась предыдущая версия M++ (M++ v.3). Поэтому, если есть желание самостоятельно заниматься модификацией или развитием M++, то нужно либо создать make-файлы (проектные файлы для какой-нибудь визуальной среды), либо загрузить и настроить M++ v.3 (eao197.narod.ru/mxx3). В последнем случае можно будет использовать утилиту mxx и проектный файл mxxc.mxx.

2.2. Настройка скомпилированной версии M++

Для настройки скомпилированной версии M++ v.4.0 необходимо:

Теперь, если ввести в командной строке mxxc -h, то M++ должен выдать краткую справку о своих параметрах. Например:

M++ $Revision:4.0.14$ by Yauheni A.Akhotnikau [$Date:Sat Nov 17 16:52:34 2001$]

mxxc [options] [-f <file.4xx>] [options] [@<response file>]

where 'options' are:
	-c	compile only
	-d <id>[=[<value>]]	define preprocessor symbol
	-u <id>	undefine preprocessor symbol
	-i <path>	define standard include path
	-api	only show M++ API to the standard output
	-pre	only preprocess file and dump result to the standard output
	-? -h -help --help	show this screen
Examples:
mxxc -f myfile.4xx
mxxc -api
mxxc -d WIN98=no -i /usr/lib/mxx -i /usr/lib/mxx/lib/cpp -f myfile.4xx

Environment variable MXX4 may contains only options -d, -u and -i
Options -u processed before options -d

If -f is not specified and 'default.4xx' in current dir exists then
'default.4xx' will be used as input file

2.3. Как M++ настроен у меня

Если у меня на компьютере установлено сразу несколько компиляторов и позволяет операционная система, то я не настраиваю M++ в глобальном окружении. Вместо этого я создаю командные файлы, в которых осуществляю настройку M++ на конкретный компилятор. При этом в переменной среды MXX4 посредством ключа -d сразу указываю тип компилятора.

Кроме того, я создаю у себя специальный каталог, в который помещаю исполнимые модули используемых мной утилит. И имя этого каталога помещаю в переменную среды PATH.

WinNT (Win2000)

Для операционных систем семейства NT я создаю командные файлы, в которых: 1) настраиваю M++ и 2) запускаю файловый менеджер Far. Затем на десктопе создаю ярлыки, указывающие на эти файлы. И все. При активизации соответствующего ярлыка запускается командный процессор, в котором настроен M++ (вместе с компилятором) и работает Far.

Так у меня выглядит командный файл для настройки M++ и компилятора Visual C++:

@echo off
set path=%path%;e:\home\eao\bin
set MXX4=-i e:\home\eao\prj\mxx-4\lib -d MSC
call "f:\program files\microsoft visual studio\vc98\bin\vcvars32.bat"
"c:\program files\far\far.exe"

Так у меня выглядит командный файл для настройки M++ и компилятора Borland C++:

@echo off
set path=%path%;e:\home\eao\bin;e:\home\eao\bin\bc\bin
set MXX4=-i e:\home\eao\prj\mxx-4\lib -d BORLAND
"c:\program files\far\far.exe"

Так у меня выглядит командный файл для настройки M++ и компилятора WATCOM C++:

@echo off
set path=%path%;e:\home\eao\bin;e:\home\eao\bin\wat\BINNT;e:\home\eao\bin\wat\BINW;
set INCLUDE=e:\home\eao\bin\wat\H;e:\home\eao\bin\wat\H\NT
set WATCOM=e:\home\eao\bin\wat
set EDPATH=e:\home\eao\bin\wat\EDDAT
set WWINHELP=E:\SOFTWARE\watcom-11\BINW
set MXX4=-i e:\home\eao\prj\mxx-4\lib -d WATCOM
"c:\program files\far\far.exe"

Так у меня выглядел командный файл для настройки M++ и компилятора Intel C++ (до тех пор пока не истек ознакомительный период):

@echo off
set path=%path%;e:\home\eao\bin
set MXX4=-i e:\home\eao\prj\mxx-4\lib -d ICC
call "f:\program files\microsoft visual studio\vc98\bin\vcvars32.bat"
call "e:\home\eao\bin\intel\compiler45\bin\iccvars.bat"
"c:\program files\far\far.exe"

Win98

Win98 не является системой, для которой M++ разрабатывался. Но поскольку она есть и я ей время от времени пользуюсь, то я настроил M++ непосредственно в autoexec.bat.

Linux

Под Linux (RedHat Linux v.7.0) я настаиваю M++ в глобальном окружении, т.к. пользуюсь только компилятором GNU C++. Для этого используется файл .bash_profile следующего вида:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
MXX4="-i $HOME/prj/mxx-4/lib -d GNU"

export BASH_ENV PATH
export MXX4
Hosted by uCoz