Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137

Visual Studio Code + FreeBasic

07.03.2024, 18:17. Показов 2326. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Расскажите пожалуйста как настроить FreeBasic в Visual Studio Code с нуля, хотя бы минимум, который необходим чтобы запускались простые программки. Компилятор FB установлен. Что-то пытался настраивать по статье https://gist.github.com/zamabu... 6b5c5d5616 , но мой Print "Hello World" запускается Python'ом, который настраивал до этого. Внизу слева у меня светится Python, а не fbc.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.03.2024, 18:17
Ответы с готовыми решениями:

Visual Basic 5 компиляция в P-Code и в Native Code - различия
Из одного и того же исходного кода: скомпилировано два exe-файла один в P-Code - BitBlt32p.exe другой в Native Code -...

Кто пишет программы в Visual Studio 2010 на Visual Basic?
Кто пишет программы в Visual Studio 2010 на Visual Basic?

Создание базы данных Visual Basic в Visual Studio
Здравствуйте. Такая проблема, при создании базы данных основанных на службах и попытки подключиться к серверу всплывает ошибка: "An...

18
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
08.03.2024, 05:39
Давайте начнём с самого простого.
Создаём каталог на вашем жестоком диске. Это будет наш проект.
В этом каталоге создаём файл HelloWorld.bas и пишем туда какой‐нибудь код, например, Print "Hello World".

Теперь настроим компиляцию по щелчку мышкой.

В каталоге .vscode вашего проекта и открываем файл tasks.json (если такого файла нет — создаём). В файле должно быть примерно следующее:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
    "version": "2.0.0",
    "tasks": [
        {
            /* это название нашей задачи */
            "label": "Build project",
            "type": "process",
            /* Путь к компилятору */
            "command": "C:\\Program Files (x86)\\FreeBASIC-1.10.1-winlibs-gcc-9.3.0\\fbc64.exe",
            /* Параметры */
            "args": [
                "-m", "HelloWorld",
                "-x", "HelloWorld.exe",
                "-v",
                "*.bas",
            ],
            "problemMatcher": [],
            "group": {
                "kind": "none",
                "isDefault": true
            }
        }
    ]
}
Теперь выбираем в меню Терминал → Запуск задачи → Build project.
Напишите, возникли ли с этим трудности.
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
08.03.2024, 15:04  [ТС]
Не получается. Когда выбираю Терминал → Запуск задачи → там нет Build project, вместо этого список из чего-то, чего я не создавал.
Миниатюры
Visual Studio Code + FreeBasic   Visual Studio Code + FreeBasic  
0
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
08.03.2024, 15:20  [ТС]
Если в строку Выберите задачу для запуска вставить Build project, тоже не запускается. Одинаково и из Test1.bas, и из tasks.json.
Если запускать F5, опять же пытается запуститься Питоном.
Да, и VSC у меня 1.70.2, который ещё работает в Windows 7.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
08.03.2024, 18:17
Вы открыли каталог «Visual Studio Code» как проект? Это неправильно.
Проектом будет в вашем случае каталог Test1_bas, его надо открывать как проект: Файл → Открыть папку → выбираем каталог Test1_bas.
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
09.03.2024, 18:55  [ТС]
Спасибо, теперь запустилось.
Понятно, всё дерево, которое слева, это один проект. Как тогда удобно переходить между проектами, без переоткрытия папки проекта? Думал, Проводник и предназначен для переключения между проектами.
Почему запуск не через Выполнить \ Запустить отладку (F5)? Почему при таком запуске говорит что нет расширения для отладки FreeBasic, и в магазине не может найти дебагер для него? Их не существует для фрибейсика? Расширение FreeBasic у меня стоит, но, как понимаю, он не дебагер, а только для подсветки.
Или я забегаю вперёд и Вы, Замабувараев, всё последовательно расскажете?

Добавлено через 1 час 12 минут
Хотел ещё напомнить, что VSC я только начинаю изучать, и пока многое в нём не понятно. До этого приходилось писать в TurboBasic, VisualBasic 6, VBA, VisualBasic .Net. Поэтому в "текстовых редакторах" с подсветкой и плагинами, не являющимися полноценными средами программирования, раньше не пользовался. Поэтому и вопросы такие.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
10.03.2024, 14:47
Цитата Сообщение от rsuan Посмотреть сообщение
Как тогда удобно переходить между проектами
Можно открыть новое окно. Файл → Новое окно, и там выбрать другой проект.

Цитата Сообщение от rsuan Посмотреть сообщение
Почему запуск не через Выполнить \ Запустить отладку (F5)?
Прежде чем отлаживать программу, её необходимо создать. VS Code не умеет создавать программы, студию необходимо научить: либо через добавление задач (что мы только что сделали), либо компиляцией через утилиту make.
Если вам лень щёлкать мышкой по меню и запускать оттуда задачи, вы можете назначить любую горячую клавишу для упрощения процесса https://code.visualstudio.com/... eybindings

Цитата Сообщение от rsuan Посмотреть сообщение
и в магазине не может найти дебагер для него? Их не существует для фрибейсика?
Пока не существует. Хотите — напишите сами.
Но можно схитрить и для отладки фрибесикового кода использовать расширение C/C++. Это не сложно.

Нам понадобится расширение C/C++. Ссылка на расширение: https://marketplace.visualstud... e.cpptools

Ещё нам необходим отладчик GDB. В комплект фрибесика он не входит, его можно взять из проекта MinGW https://github.com/brechtsande... w/releases

В каталоге .vscode создаём файл launch.json примерно с таким содержимым:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Отладка x64",
            "type": "cppdbg",
            "request": "launch",
 
            /* Путь к скомпилированной программе */
            "program": "${workspaceFolder}/HelloWorld.exe",
            /* параметры программы */
            "args": [],
 
            "stopAtEntry": true,
 
            /* текущий каталог */
            "cwd": "${fileDirname}",
 
            "externalConsole": false,
            "MIMode": "gdb",
 
            /* путь к отладчику GDB, указываем свой */
            "miDebuggerPath": "C:\\Program Files\\mingw64\\bin\\gdb.exe",
 
            "setupCommands": [
                {
                    "description": "Включить автоматическое форматирование для gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    ]
}
Убедитесь, что после после компиляции программы исходный код не менялся. Иначе студия будет неправильно показывать текущие строки кода. Пересоберите проект.

Также нам нужно компилировать программу вместе с отладочной информацией. Добавляем в задачу сборки параметр -g. Файл tasks.json:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build project",
            "type": "process",
            /* Путь к компилятору */
            "command": "C:\\Program Files (x86)\\FreeBASIC-1.10.1-winlibs-gcc-9.3.0\\fbc64.exe",
            /* Параметры */
            "args": [
                /* включение отладочной информации */
                "-g",
                "-x", "HelloWorld.exe",
                "*.bas",
            ],
            "problemMatcher": [],
            "group": {
                "kind": "none",
                "isDefault": true
            }
        },
    ]
}
Заходим в Файл → Настройки → Параметры → Функции → Отладка → Включаем галочку Allow Breakpoints Everywhere.

Теперь можно нажимать F5 и отлаживать программу.

Подробности отладки тут https://code.visualstudio.com/... /debugging
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
11.03.2024, 17:08  [ТС]
Пока ещё не всё сделал, возникли вопросы:
1. Для целей VSC+FreeBasic нужен ли весь MinGW-w64 со своими ~700 Мб или достаточно одного gdb.exe?
2.
Цитата Сообщение от Замабувараев Посмотреть сообщение
Убедитесь, что после после компиляции программы исходный код не менялся... Пересоберите проект.
По вашим предыдущим шагам я вроде не компилировал и проект не собирал. Поясните пожалуйста, когда делается компиляция (при каждом запуске F5?). "исходный код не менялся" - код в моём Test1.bas почему-то мог сам поменяться? Что подразумевается под "сборкой" проекта, для чего и как это делается?
3.
Цитата Сообщение от Замабувараев Посмотреть сообщение
Добавляем в задачу сборки параметр -g.
А куда делись параметры -m и -v, которые были в ранее показанном tasks.json?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
11.03.2024, 18:01
Цитата Сообщение от rsuan Посмотреть сообщение
достаточно одного gdb.exe?
Достаточно одного gdb.exe. Если вы решили удалить лишнее, делайте бекапы, вдруг gdb тянет за собой какие‐нибудь библиотеки которые можно по незнанию удалить.
Цитата Сообщение от rsuan Посмотреть сообщение
Что подразумевается под "сборкой" проекта
Сборка, компиляция, создание программы, исполняемого файла. Синонимы.
Цитата Сообщение от rsuan Посмотреть сообщение
когда делается компиляция
Когда надо получить программу, её следует собрать. Ну или скомпилировать, если вам это слово нравится больше. То есть выбираем в меню Терминал → Запуск задачи → Build project (ну или как вы там назвали вашу задачу).
Цитата Сообщение от rsuan Посмотреть сообщение
при каждом запуске F5
По F5 студия запускает отладку. Если вам это не нравится, вы можете переназначить горячие клавиши.
Цитата Сообщение от rsuan Посмотреть сообщение
"исходный код не менялся" - код в моём Test1.bas почему-то мог сам поменяться?
Если вы изменили какой‐нибудь файл, хоть один символ, даже если просто добавили пустую строку — придётся программу перекомпилировать.
Цитата Сообщение от rsuan Посмотреть сообщение
А куда делись параметры -m и -v
Это просто пример демонстрации что для отладочных целей следует добавлять -g. Можете оставить -m и -v.
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
11.03.2024, 19:06  [ТС]
Замабувараев, спасибо огромное!
Понял, сборка проекта - то же самое, что компиляция.
По полноценным средам программирования (если не ошибаюсь, они называются IDE), в которых я ранее немного программировал, по "Выполнить" (F5) выполнялась и компиляция, и последующий запуск (за исключением интерпретаторов). В них не было разделения на "сборку" и запуск. А в VSC, значит, нужно каждый раз при изменении кода выполнять эти два шага, не совсем удобно. Можно ли их объединить в какое-то одно действие (пункт меню или горячую клавишу)?

Теперь с понятием "отладка", которая, как я понял выше, выполняется при запуске программы. В моём представлении, это устранение ошибок. Ошибки могут обнаруживаться:
1. во время набора кода (неправильный синтаксис (или как правильнее назвать)). Опять ссылаюсь на IDE, в них такие ошибки сразу вызывают подсветку места и сообщение.
2. во время компиляции. При этом компиляция останавливается и ошибка опять же посвечивается и сопровождается сообщением, что не так.
3. во время выполнения программы. Когда такое случается (например вместо цифры ввёл букву, а в программе обработку этого не предусмотрел), тоже хотелось бы чтобы программа останавливалась и подсвечивала место кода с сообщением.
Как это всё работает в VSC?
0
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
13.03.2024, 16:55  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Теперь можно нажимать F5 и отлаживать программу.
Ошибка:
Unable to start debugging. Unexpected GDB output from command "-environments-cd "c:\\...\\Visual Studio Code\\Test1_bas\\.vscode"". c:\...\Visual Studio Code\Test1_bas\.vscode: No such file or directory.
Миниатюры
Visual Studio Code + FreeBasic  
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
14.03.2024, 06:59
Цитата Сообщение от rsuan Посмотреть сообщение
Unable to start debugging. Unexpected GDB output from command "-environments-cd "c:\\...\\Visual Studio Code\\Test1_bas\\.vscode"". c:\...\Visual Studio Code\Test1_bas\.vscode: No such file or directory.
Возможно, проблема в путях с пробелами или кириллицей.
Попробуйте положить отладчик GDB в каталог без пробелов.
И чтобы в путях к проекту не было пробелов.
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
14.03.2024, 15:56  [ТС]
Спасибо. Сделал. Вроде ошибок не выдаёт, но окно запущенной программы (консольное) не видно, и слева сверху под словами "Отладка x64" бесконечно слева направо бегает прогресс-бар, и висит панелька отладки. Нагрузку на процессор и дисковую подсистему не наблюдаю. Если что, то gdb.exe я вытащил и расположил по пути без пробелов один exe'шник. Может из-за этого?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
14.03.2024, 19:52
Цитата Сообщение от rsuan Посмотреть сообщение
Если что, то gdb.exe я вытащил и расположил по пути без пробелов один exe'шник
Вы можете проверить работает ли GDB. Запустите его отдельно двойным щелчком, если появляется что‐то вроде такого, значит всё работает:

Но наверняка не сработает, потому что будут требоваться библиотеки. Поэтому лучше поместить весь mingw в каталог без пробелов.
Цитата Сообщение от rsuan Посмотреть сообщение
но окно запущенной программы (консольное) не видно
Если вам нужно чтобы у отлаживаемой программы была внешняя консоль, установите в файле launch.json параметр в true:
JSON
1
            "externalConsole": true,
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
15.03.2024, 18:10  [ТС]
Действительно, отдельно gdb.exe не запускается. Расположил полный комплект mingw64 по пути без пробелов (C:\Programs\mingw64). Мой проект тоже без пробелов. Ошибка:

Unable to start debugging. Unexpected GDB output from command "-environment-cd
C:\\Документы\\SkyveR\\Projects\\VSC\\Te st1_bas\\.vscode".
C:\\Документы\\SkyveR\\Projects\\VSC\\Te st1_bas\\.vscode: No such file or directory.
Открыть launch.json

Кликните здесь для просмотра всего текста
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "Отладка x64",
            "type": "cppdbg",
            "request": "launch",
 
            /* Путь к скомпилированной программе */
            "program": "${workspaceFolder}/Test1.exe",
            /* параметры программы */
            "args": [],
 
            "stopAtEntry": true,
 
            /* текущий каталог */
            "cwd": "${fileDirname}",
 
            "externalConsole": false,
            "MIMode": "gdb",
 
            /* путь к отладчику GDB, указываем свой */
            "miDebuggerPath": "C:\\Programs\\mingw64\\bin\\gdb.exe",
 
            "setupCommands": [
                {
                    "description": "Включить автоматическое форматирование для gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    ]
}


Добавлено через 6 минут
Запуск gdb.exe, кроме того что у Вас на скрине, ещё добавляет про какую-то ошибку:

Traceback (most recent call last):
File "<string>", line 4, in <module>
ModuleNotFoundError: No module named 'libstdcxx'
C:/Programs/mingw64/bin/../share/gdb/gdbinit:7: Error in sourced command file:
Error while executing Python code.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
16.03.2024, 04:48
Цитата Сообщение от rsuan Посмотреть сообщение
C:\\Документы\\SkyveR\\Projects\\VSC\\Te st1_bas\\.vscode
Кириллица в путях
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
16.03.2024, 10:42  [ТС]
Ох уж, то без пробелов, то без кириллицы. Как-то несерьёзно это для таких серьёзных систем, по-моему.
Но заработало, спасибо! Хотя при запуске без отладки (хоть из меню, хоть Ctrl+F5) почему-то всегда останавливается на первой строке, хотя точек остановки не установлено. И нужно дополнительно нажимать F5 чтоб продолжилось.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
16.03.2024, 13:18
Цитата Сообщение от rsuan Посмотреть сообщение
Ох уж, то без пробелов, то без кириллицы
В новых версиях студии пробелы работают. Про кириллицу не знаю, но полагаю что нет.
Цитата Сообщение от rsuan Посмотреть сообщение
почему-то всегда останавливается на первой строке
Можно поменять в файле launch.json
JSON
1
            "stopAtEntry": true,
на false
1
4 / 4 / 0
Регистрация: 16.10.2014
Сообщений: 137
16.03.2024, 17:27  [ТС]
Бинго! Замабувараев, благодарю! Начальное представление о VSC получил, настроил среду на FreeBasic, понял как происходит сборка, запуск, отладка и вывод! Ну, не всё так просто и очевидно было, согласитесь Даже для не совсем новичка в программировании. Сам бы не разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2024, 17:27
Помогаю со студенческими работами здесь

Проблема с установкой Visual Studio вообще и Visual Basic
Точнее, с установкой Visual Studio вообще и Visual Basic в частности. В самом конце установки, при setup is updating your system,...

Visual Basic в Visual studio
Как реализовать корректность введенных данных ? В форме регистрации есть поля, как email, пароль и т.д. Как сделать так, что бы...

Почему у меня MASM32 не правильно работает в Visual studio когда уже установлен внутри настройки visual studio code ?
Почему у меня MASM32 не правильно работает в Visual studio когда уже установлен внутри настройки visual studio code ?

Зачем для создания формы на Angular использовать Visual Studio и Visual Studio Code?
Мне нужно написать форму на ангуляре, которая будет выполнять Select, Insert,Delete из базы данных. Нашла видео, в котором показывают...

Чем отличается Visual Studio Community и Visual Studio Code?
в чем разница Visual Studio Code или Visual Studio Community. Описание на англиском где я полный нуль. кто юзал эти IDE и может сказать чем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru