Использование командной строки

Предыдущая тема Следующая тема Перейти вниз

Использование командной строки

Сообщение  ShenZN в Пн Сен 01, 2008 4:26 pm

Использование командной строки.

Разговор в этой главе пойдет, как вы догадались по названию, об использовании командной строки для работы с компилятором FreeBasic. И так начнем…
FreeBasic Compiler (fbc) распространяется виде консольного компилятора. То есть его можно запустить в командной строке Dos, Windows, или в терминале операционной системы Linux.
В папке freebasic находится компилятор, это файл fbc.exe, так же там присутствует файл start_shell.exe для запуска командной строки.
Допустим компилятор установлен в директорию FreeBasic на диске С. Тогда при запуске start_shell.exe появится консоль с таки текстом:

С:\FreeBASIC>

Если ввести fbc то на экран будет произведен вывод всех опций компилятора.

Стандартный синтаксис:

fbc [ опции ] [ файлы ]

На месте опций вводят те опции, которые нужно применить при компиляции указанных файлов. Примечание: квадратные скобки не нужно вводить. В качестве файлов могут выступать документы с таким расширением:

.bas - исходный файл программы
.a - библиотека
.o - объектный файл
.rc - скрипт ресурсов (только в Windows)
.res – скомпилированный ресурс (только в Windows)
.xpm - X файл иконки (только Linux)

Вот несколько простых примеров:

Для компиляции исходного файла программы на языке FreeBasic (.bas) нужно написать:

fbc file.bas

Примечание: указывать расширение обязательно!

В данном случае компилятор произведет проверку файла, переведет его на язык ассемблера, затем создаст объектный файл с помощью GAS и соединит с дополнительными файлами и библиотеками с помощью линковщика. В папке возле исходного кода программы появится новый файл file.exe (в Windows и DOS) или ./file(в Linux). Созданный исполняемый файл будет иметь такое же имя как и файл с текстом программы. В данном случае имя file.

Так же возможна компиляция одновременно несколько исходных файлов:

fbc dog.bas cat.bas pig.bas

В таком случае компилятор скомпилирует каждый файл и соединит в единую программу с именем dog.exe (Windows и DOS) или ./dog (в Linux). Программа будет иметь именно такое имя так как первым указан исходный файл dog.bas. Так же в этом примере, считается, главным или входным файлом - dog.bas, так как он указан первым.

Для того чтобы изменить имя исполняемого файл нужно применить опцию "–x":

fbc -x program.exe dog.bas cat.bas pig.bas

В данном случае будет создан исполняемый файл с именем program, как указано после опции "–х".

Чтобы изменить входной (основной) файл необходимо применить опцию "-m", после которой указать имя файла, но без расширения:

fbc -m cat dog.bas cat.bas pig.bas

Как вы уже наверное догадались, в папке с исходными файлами будет создан исполняемый файл с именем cat.
Любые опции можно применять совместно:

fbc -x program.exe -m cat dog.bas cat.bas pig.bas

Основным файлом является cat.bas, но имя исполняемого файла будет program.


Для автоматизации, можно написать бат файл ( .bat ). Для этого создайте простой текстовый документ с таким содержанием:

Код:
set directory="С:\Program Files\FreeBasic\fbc.exe"
set opt=
set app="%1"
%directory% %opt% %app%
if errorlevel 1 pause

Первая строчка указывает на место, где находится сам компилятор. Вторая строчка для указания опций. В данном случае ни каких опций не установлено, но в случае необходимости их можно добавить после знака равно в двойных кавычках. Например:
set opt="-s gui"

Третья строчка указывает на, то чтобы скомпилировать файл указанный сразу после названия бат файла. В четвертой мы все это компонуем и выполняем, то есть получается такая команда:
С:\Program Files\FreeBasic\fbc.exe [options] [files].
В случае какой либо ошибки произойдет пауза до нажатия любой клавиши, за это отвечает строчка if errorlevel 1 pause.
Сохраните это все в файле с расширением .bat, например, с именем make. Теперь для компиляции достаточно написать в командной строке:

make filename.bas


Еще несколько примеров:

fbc -s gui myfile.bas

Создает программу myfile.exe при запуске которой не появляется окно консоли


fbc -lib module1.bas module2.bas module3.bas -x libmylib.a

Компилирует и связывает все три файла в библиотеку с именем libmylib.a

fbc -c sub_module.bas

Создает (компилирует) только объектный файл sub_module.o

На этом, я думаю можно закончить. Ниже приведен список всех команд.

Спасибо!!!

ShenZN

Сообщения : 155
Дата регистрации : 2008-02-18
Откуда : Ukraine

Посмотреть профиль http://lodestar-game.narod.ru

Вернуться к началу Перейти вниз

Приложение

Сообщение  ShenZN в Пн Сен 01, 2008 4:38 pm

Приложение

Список всех опций:

-а < name >

Добавляет объектный файл к списку линковщика

-arch < type >

Устанавливает архитектуру (по умолчанию: 486)

-b < name >

Добавить исходный файл к компиляции

-c

Только компиляция, без компоновки(линковки)

-d < name=val >

Добавить препроцессор define

-dll

Создать DLL, включая импортированную библиотеку. (Также, как -dylib)

-dylib

Создать DLL, включая импортированную библиотеку

-entry < name >

Основной файл без расширения, точка входа (по умолчанию является первым .bas файл в командной строке)

-e

Добавить проверку ошибок

-еx

Добавить проверку ошибок и resume

-exx

Также, как –ex, но еще проверяются границы массива и правильность указателей

-export

Export symbols for dynamic linkage

-g

Добавить отладочную информацию

-i < name >

Добавить путь, для поиска подключаемых файлов

-include < name >

Включите файл заголовка в каждый скомпилированный исходный файл

-l < name >

Добавьте библиотечный файл к списку компоновщика

-lang < name >

Выбор языка компиляции: fb, fblite, qb, осужденное

-lib

Создать статическую библиотеку

-m < name >

Основной файл без расширения, точка входа (по умолчанию является первый .bas файл в командной строке)

-map < name >

Cохранитm карту линковки в файл с именем name

-maxerr < val >

Перестать продолжать грамматический разбор текста при обнаружении ошибки с кодом val.

-mt

Произвести линковку библиотек обеспечивающие многопоточность

-nodeflibs

Не компоновать библиотеки подключаемые по умолчанию

-noerrline

Не показывать исходную строку где произошла ошибка

-o < name >

Добавить объектный файл к компоновке программы (должно быть указано после .bas файла)

-p < name >

Добавить путь, для поиска подключаемых библиотек

-prefix < path >

Установить путь, где находится компилятор

-profile

Допустить профилирование функций

-r

Не удаляйте asm файл(файлы)

-s < name >

Установить подсистему (графический интерфейс пользователя (-s gui), консоль( -s console))

-target < platform >

Установить целевую платформу для кросс-компиляции

-t < value >

Установите размер стека в килобайтах (по умолчанию: 1Mб)

-v

Устанавливает компилятор в избыточный режим.

-version

Версия компилятора

-w < value >

Установите минимальный уровень предупреждений: all, pedantic or a value

-Wa < opt >

Передать опции в GAS (разделять только запятыми)

-Wl < opt >

Передать опции в LD (разделять только запятыми)

-x < name >

Установите имя/путь выходного файла


Последний раз редактировалось: ShenZN (Ср Сен 10, 2008 4:03 pm), всего редактировалось 1 раз(а)

ShenZN

Сообщения : 155
Дата регистрации : 2008-02-18
Откуда : Ukraine

Посмотреть профиль http://lodestar-game.narod.ru

Вернуться к началу Перейти вниз

Re: Использование командной строки

Сообщение  Eric-S в Ср Сен 10, 2008 2:02 pm

Прошу прощенья, а разве можно в качестве буквы диска использовать кирилические символы?
"с:\freebasic"
или имелось в виду
"c:\freebasic"
из-за глюков переключения раскладок?
Кстати этоже касаеться "-ex"? опять же русская буква "Х".

Когда-то мне попадался текстовый редактор, который подсвечивал кирилицу одним цветом а латиницу другим.

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование командной строки

Сообщение  ShenZN в Ср Сен 10, 2008 4:07 pm

Прошу прощенья, а разве можно в качестве буквы диска использовать кирилические символы?
"с:\freebasic"
или имелось в виду
"c:\freebasic"
из-за глюков переключения раскладок?
Кстати этоже касаеться "-ex"? опять же русская буква "Х".

Извините, в следующий раз буду аккуратней с раскладками Very Happy
Для меня лично, визуально С и С одинаковы, не знаю как для вас Very Happy

ShenZN

Сообщения : 155
Дата регистрации : 2008-02-18
Откуда : Ukraine

Посмотреть профиль http://lodestar-game.narod.ru

Вернуться к началу Перейти вниз

Re: Использование командной строки

Сообщение  Eric-S в Вс Сен 21, 2008 8:21 am

Лично мне это заметно, когда символы разные. Ну да это мелочи. Мой респект и за такое. Намного лучше чем английский вариант.

Я вот всё думал, что же мне не нравиться, и только что дошло. Мне не нравиться название темы. Наверное нужно вставить слово "компилятор" или ещё что-нибудь в этом роде.
"использование командной строки компилятора"
"параметры командной строки fbc"
Ну или нечто в этом роде.

А если я захочу написать темку про command, интересно как я её назову? Хотя всё же не "командная строка".

Eric-S

Сообщения : 738
Дата регистрации : 2008-08-06
Возраст : 34
Откуда : Россия, Санкт-Петербург

Посмотреть профиль http://eric50.narod.ru

Вернуться к началу Перейти вниз

Re: Использование командной строки

Сообщение  Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Предыдущая тема Следующая тема Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения