Compiling fb on windows

Отримання вихідного коду FB

Для компіляції нової версії FB, спочатку необхідно отримати вихідний код FB. Передбачається, що у вас є каталог з назвою fbc. що містить останній FB вихідний код.

Установка набір інструментів MinGW-w64

Вийміть набір інструментів в нову папку C: \ MinGW-w64. таким чином в результаті ви отримаєте C: \ MinGW-w64 \ bin \ gcc.exe.

Якщо ви знаєте, що робите, ви також можете використовувати інший набір інструментів MinGW-W64, або навіть один з різних проектів, таких як MinGW.org або TDM-GCC. У нас є ще трохи інформації про вибір засобів по MinGW на сторінці DevGccToolchainChoice.

MSYS (оригінальна відгалуження Cygwin) дасть Unix-подібну середу оболонки для Windows, в тому числі GNU make, оболонку Bash та Unix командний рядок інструментів, такі як cp і rm. Для FB ми повинні запустити FB Makefile і тестовий набір FB.

Необхідні пакети MSYS можна скачати і розпакувати за допомогою останньої версії mingw-get установка з проекту MinGW.org.

Запустіть інсталятор і виберіть каталог інсталяції C: \ MinGW. Таким чином, це буде окремо від C: \ MinGW-w64. щоб уникнути потенційних конфліктів. Менеджер установки MinGW (C: \ MinGW \ bin \ mingw-get.exe) після повинен бути відкритий автоматично. Використовуйте для установки mingw-developer-toolkit пакет BASIC з основного розділу Setup, натиснувши на вікно зліва імені пакета і вибору "Mark for Installation", потім виберіть Installation -> Apply Changes з меню програми.

Це повинно встановити найбільш часто використовувані компоненти MSYS. Ми не хочемо устаноавлівать mingw32-base або mingw32-gcc- * пакети тут, тому що ми використовуємо зовнішній набір інструментів MinGW-W64 замість MinGW.org. Якщо ви не хочете використовувати програму установки MinGW.org, ви також можете завантажити пакети MinGW / MSYS вручну з MinGW проектів з сайту завантаження.

В кінцевому рахунку, MSYS повинен бути встановлений в C: \ MinGW \ msys \ 1.0 \. Тепер є три важливих каталогу: C: \ MinGW-w64 \ bin \. C: \ MinGW \ bin \ і C: \ MinGW \ msys \ 1.0 \ bin \. Всі вони повинні бути додані до змінної PATH середовища (в даному порядку), так щоб програми, які вони включають були знайдені при виклику з командного рядка або з Makefile FB.

Для того щоб уникнути зміни системної PATH. ви можете використовувати скрипт open-msys.bat наведений нижче, щоб відкрити bash MSYS з необхідними налаштуваннями PATH. кожен раз, ви повинні використовувати його:

FB rtlib вихідний код залежить від заголовків libffi (ffi.h і ffitarget.h). які повинні бути доступні в наборі інструментів gcc в папці include (C: \ MinGW-w64 \ i686-w64-mingw32 \ include для 32 bit MinGW-w64 і C: \ MinGW-w64 \ x86_64-w64-mingw32 \ include для 64 біт MinGW-w64). Крім того, бібліотека libffi.a потрібно пізніше при компіляції програм FB, які використовують Threadcall.

Готові версії libffi доступні в fbc області завантажень.

Якщо ви не хочете використовувати готові версії, але вважаєте за краще компілювати libffi вручну, замість цього, то це досить просто. libffi використовує автоутіліти (autoconf, automake, libtool) побудови системи, таким чином відповідні пакети повинні бути встановлені для MinGW / MSYS. Відкрийте MSYS bash (з належними настройками PATH).

  • 64біт: Це вимагає роботи навколо MSYS 'uname яка як і раніше повертає 32bit навіть на 64-бітових:

Це повинно призвести libffi заголовки в підкаталозі include / і зібрану бібліотеку в підкаталозі .libs /. Ви можете потім скопіювати їх до відповідних каталоги набору інструментів MinGW-w64, таким чином, щоб gcc знайшов їх.

Автономна збірка (автономна FB)

Отримання існуючої установки FB для початкового завантаження

Нам знадобиться робоча установка FB-win32 для завантаження нового компілятора FB. Якщо у вас ще не встановлено FB-win32, скачайте останній реліз FreeBASIC-X.XX.X-win32 з FB сайту завантаження. Він повинен бути витягнутий в C: \ FreeBASIC-X.XX.X-win32.

Побудова нової установки FB

Якщо ви хочете створити традиційну автономну FB-win32 установку як один з пакетів FreeBASIC-X.XX.X-win32. вам потрібно встановити змінну ENABLE_STANDALONE в FB makefile. Крім того, для компіляції для 64 bit необхідно встановити змінну TARGET_ARCH вручну, тому що MSYS 'uname -m команда не підтримує 64-біт і таким чином FB makefile буде неправильно визначати систему. Припускаючи, що FB джерела розташовані в C: \ fbc. створіть файл C: \ fbc \ config.mk містить наступне:

Потім відкрийте MSYS bash використовуючи скрипт .bat. згаданий вище (з належними настройками PATH), перейдіть в каталог з FB вихідним кодом, запустіть "make" з FBC =. змінної, що вказує на існуючий fbc.exe і нехай він компілюється:


Це повинно створити компілятор fbc.exe і бібліотеки lib \ win32 \ або lib \ win64 \ відповідно. Для виконання цієї нової установки FB, вам потрібно додати binutils (as.exe, ar.exe, ld.exe, dlltool.exe) в bin \ win32 \ і скопіювати деякі бібліотеки MinGW в lib \ win32 \.

([Target] відноситься до i686-w64-mingw32 для 32bit MinGW-w64 або x86_64-w64-mingw32 для 64bit MinGW-w64, і [version] - це номер версії gcc)

Якщо вам потрібно. можна скопіювати більше бібліотек C: \ MinGW-w64 \ lib \ gcc \ [target] \ [version] \ libsupc ++. a C ++ бібліотеки, або інші Win32 API DLL бібліотеки імпорту з C: \ MinGW-w64 \ [target] \ lib \ .

Тепер нова установка FB повинна бути готова до використання. Ви можете використовувати її прямо з вихідного дерева або скопіювати її в інше місце. Нижче наведені відповідні файли і каталоги:

Звичайна збірка (як в Linux)

Отримання існуючої установки FB для початкового завантаження

Нам знадобиться робоча установка fbc для завантаження нового компілятора FB. Якщо ви не маєте ще встановлений fbc. скачайте останній fbc-X.XX.X-mingw-w64-i686 (32бит) або fbc-X.XX.X-mingw-w64-x86_64 (64біт) пакет з FB сайту завантаження. і розпакуйте його в каталог MinGW-w64 (C: \ MinGW-w64) як пакет MinGW. Це додасть працює fbc в вашу установку MinGW-w64.

Побудова нової установки FB

Для того щоб створити звичайну (не автономні) збірку, просто скомпілюйте FB без вказівки ENABLE_STANDALONE. Однак, для того, щоб скомпілювати для 64 біт необхідно встановити змінну TARGET_ARCH вручну, тому що MSYS 'uname -m команда не підтримує 64-біт і таким чином FB makefile буде неправильно визначати систему.

  • 32біт: не потрібно config.mk.
  • 64біт: створити config.mk містить наступне:

Потім відкрийте MSYS bash використовуючи скрипт .bat. згаданий вище (з належними настройками PATH), перейдіть в каталог з FB вихідним кодом, запустіть "make" і нехай компілюється:


Це повинно створити компілятор bin / fbc.exe і бібліотеки lib \ freebasic \ win32 \ або lib \ freebasic \ win64 \ соотвественно.

При бажанні, ви можете скопіювати цю установку в дерево C: \ MinGW-w64 запустивши "make install":


Може бути корисним зберегти префікс змінної в config.mk. так щоб запускати make install в майбутньому без необхідності турбуватися про це:


Установка FBC в каталог MinGW означає, що він діє, як якщо б він був частиною MinGW. Однак FBC можна використовувати з вихідного дерева, без установки його в іншому місці. Він викликатиме gcc -print-file-name =. для того, щоб знайти MinGW binutils і бібліотеки.

Схожі статті