Компиляция исходных текстов компилятора freebasic
В этой теме я хочу рассказать как можно скомпилировать компилятор freebasic с библиотеками. Для начала надо скачать MINGW+MSYS
Далее установить , не забыв при установке указать в опциях MSYS и утилиты
Далее скачать этот архив и распаковать 4 файла в папку C:\MinGW\include (если будут какие то ошибки связанные с libffi , тогда качаем с оф. сайта новые заголовки из библиотеки libffi и кладем туда же, то есть в C:\MinGW\include)
Далее прописать (если не прописано) в переменных средах пути к MinGW:
Код
C:\MinGW\bin;C:\MinGW\include;C:\MinGW\lib
И таким же образом прописать (если не прописано) пути к компилятору freebasic , папкам lib и inc
Скачиваем исходники компилятора с оф. сайта, распаковываем , например в C:\fbc
Собственно приготовления закончились.
Заходим в меню пуск->все программы->MinGW , запускаем MinGW shell. Открылась консоль.
Переходим в консоли в папку с исходными кодами, там должны находиться makefile,install.sh и др.
Даем команду make для обычной версии
Или команду make ENABLE_STANDALONE=1 для версии STANDALONE.
Обычная версия не такая уж для нас виндузятников и привычная
В ней все каталоги изменены. Так компилятор находится в папке BIN вместе с ld.exe и другими утилитами. Библиотеки находятся в каталоге lib/freebasic
Вот STANDALONE версия - это то к чему привыкли (все на привычных местах)
Больше о различиях ЗДЕСЬ
Известные проблемы:
Если при компиляции вылезет такая ошибка (у меня вылезла):
Код
CC src/rtlib/obj/hinit.osrc/rtlib/win32/hinit.c: In function 'fb_hInit':
src/rtlib/win32/hinit.c:21:5: warning: implicit declaration of function '_controlfp' [-Wimplicit-function-declaration]
src/rtlib/win32/hinit.c:21:17: error: '_PC_64' undeclared (first use in this function)
, то на оф. сайте советуют в файл:
Код
C:\MinGW\lib\gcc\mingw32\4.6.2\include\float.h
записать в начале файла строку:
Код
#include_next <float.h>
Но у меня при этом вываливалось сообщение о том , что компилятор не может найти включаемый файл. Я попросту взял содержимое файла:
Код
C:\MinGW\include\float.h
записал в начале файла:
Код
C:\MinGW\lib\gcc\mingw32\4.6.2\include\float.h
Все!