Не работает компилятор! Помогите!

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Sergej3030
незнакомец
Сообщения: 6
Зарегистрирован: 16.09.2008 01:10:23

Не работает компилятор! Помогите!

Сообщение Sergej3030 »

Выдает такое сообщение: unable to open file C:\FPC\2.2.2\bin\i386-win32\fp.cfg
Файл этот на месте, путь тоже правильный. Что же это такое? :shock:
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

На месте, это в - "C:\FPC\2.2.2\bin\i386-win32\"?
Sergej3030
незнакомец
Сообщения: 6
Зарегистрирован: 16.09.2008 01:10:23

Сообщение Sergej3030 »

Да. Устанавливаю, все идет нормально. Это происходит при попытке компиляции...
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Sergej3030
Посмотрите, на всякий случай, какие права на fpc.cfg установлены.
Что-то типа: cacls fpc.cfg
Sergej3030
незнакомец
Сообщения: 6
Зарегистрирован: 16.09.2008 01:10:23

Сообщение Sergej3030 »

ОС Windows XP, процессор Celeron...

Добавлено спустя 8 минут 50 секунд:
Vadim писал(а):Sergej3030
Посмотрите, на всякий случай, какие права на fpc.cfg установлены.
Что-то типа: cacls fpc.cfg


А где это помотреть? И какие они должны быть?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Sergej3030 писал(а):А где это помотреть? И какие они должны быть?

Или:
- В Проводнике найти этот файл, щёлкнуть по нему правой кнопкрй мыши и выбрать закладку "Безопасность", найти в верхнем списке то имя, под которым Вы входите в систему, щёлкнуть по нему мышкой и в нижнем списке посмотреть, есть ли, как минимум, разрешение на Чтение.
Или
- запустить командный интерпретатор (cmd.exe или far.exe) зайти в тот каталог, где лежит fpc.cfg и ввести в командной строке cacls cfg.exe и посмотреть, что там выведется. Например у меня выводится:
D:\progs\fpc22\bin\i386-win32\fpc.exe Vadim:F

где первым идёт имя проверяемого файла, Vadim - это то имя, под которым я вхожу в систему, F - означает FULL, т.е. полный доступ (и чтение и запись и даже удаление :) )
Sergej3030
незнакомец
Сообщения: 6
Зарегистрирован: 16.09.2008 01:10:23

Сообщение Sergej3030 »

У меня примерно то же самое. Написано VORDEFENIERT(по умолчанию) Administratoren :F
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Sergej3030
Тогда это подозрительно. :) Попробуйте старый fpc.cfg переименовать, например в fpc.cfg_old, и попробовать откомпилировать что-нибудь очень простое, например:

Код: Выделить всё

Begin
  WriteLn('Hello');
End.
Sergej3030
незнакомец
Сообщения: 6
Зарегистрирован: 16.09.2008 01:10:23

Сообщение Sergej3030 »

Вадим, спасибо, заработало! :D
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Sergej3030
Это ещё не всё. :)
В файле fpc.cfg компилятор хранит свои настройки. И некоторые из них нужные. :)
Создайте новый пустой файл fpc.cfg, чтобы он лежал рядом с компилятором, и занесите туда минимум, который точно нужен:
-FuC:\FPC\2.2.2/units/$FPCTARGET/rtl
-FuC:\FPC\2.2.2/units/$FPCTARGET/*

-Xs
-XX

Опция -Fu показывает компилятору по какому пути лежат его откомпилированные модули, всякие там CRT, SysUtils, Windows и т.п.
-Xs удаляет отладочную информацию из экзешника, чтобы его размер был поменьше.
-XX устанавливает гибкое связывание\, т.е. в экзешник запихивается не весь модуль целиком (тот же Windows к примеру), а только те функции которые реально используются в программе.
Sergej3030
незнакомец
Сообщения: 6
Зарегистрирован: 16.09.2008 01:10:23

Сообщение Sergej3030 »

Спасибо большое!
Ответить