C++ Environment InitiatorVisual Studio Code C / C++ Environment Initiator

Overview

Visual Studio Code C / C++ Environment Initiator

Latest Version : v 1.0.1(2021/11/08)

.exe link here

About : Visual Studio Code에서 C/C++환경을 MinGW GCC/G++를 활용해서 프로젝트 생성 / 삭제 / 환경변수 등록을 해주는 프로그램입니다. 처음에는 TypeScript로 구현을 하고 싶었으나, 제 TypeScript숙련도에 문제가 있는상태라 우선 python3와 Windows Batch를 이용해서 만들었습니다. 실행파일은 압축해제후 dist -> initiator -> initiator(톱니바퀴모양).exe를 실행해주시면 됩니다. 우클릭해서 바로가기를 만들어 사용하시는게 편합니다. 압축해제 후 있는 바로가기는 사용할 수 없는점 참고바랍니다.. 추후 TypeScript로 포팅할 예정이니 기대해주시면 감사하겠습니다.

이 프로그램을 사용하기 위해서는 VSCode가 add to path가 체크된 상태에서 설치가 되어있어야합니다

Python : ver 3.7.6

CLone을 하시게 되면 Mingw64가 없기때문에 실행되지 않을 가능성이 높습니다. clone해서 사용하고 싶으신 분은 이 링크를 들어가 다운로드 후 7zip파일을 압축 해제후 zip파일로 다시 압축하고, 아래 사진과 같이 mingw/mingw64.zip 을 추가해주신후 사용해 주시기 바랍니다.

만약 소프트웨어 사용중 오류가 나거나, 개선 방안, 새로운 기능에 대한 제안이 있으신 분은 issue를 남겨주시면 감사하겠습니다

image


사용방법

  • 해당 소프트웨어에서 모든 옵션을 선택할때는 각 옵션들 좌측에 있는 숫자를 입력해서 선택해주시기 바랍니다.
  1. 실행하기

실행하게 되면 아래와 같은 창이 나오게 됩니다

image

이 프로그램을 종료하기 위해서는 Ctrl + C가 아닌 /exit을 사용해 종료해 주시기 바랍니다. Ctrl + C로 강제종료를 하게 되면 경고창이 뜨게 됩니다

image

  1. help

1번 옵션인 help를 선택하게 되면 이 소프트웨어의 기본적인 Document가 나오게 됩니다. 만약 윗부분이 짤린다면 창을 확대해 주시기 바랍니다.

image

엔터키를 누르시면 다시 메인으로 가실수 있습니다

  1. Install_MinGW_64bit_and_build_basic_ENV

이 옵션은 아래 기능들을 순차적으로 수행합니다

  • MingW설치 : 이 소프트웨어에서 설치하는 MingW위치를 임의로 변경하지 말아주시기 바랍니다. 변경시 소프트웨어 기능을 정상적으로 사용할 수 없게됩니다.

  • MingW Windows 환경변수 자동등록

  • Visual Studio Code Microsoft 권장 C/C++ Extension 모두 설치 : 각 Extension은 실행시점 최신버전으로 설치됩니다. 하지만 추후 extension이 있을시 업데이트는 사용자가 직접 해야합니다

image

현재 위 사진과 같이 GCC가 설치가 안되어있는것을 볼 수 있습니다.

image

실행을 하게되면 처음에 위 사진과 같이 검은 화면에 커서만 깜빡이게 됩니다. 이 과정이 MinGW를 설치하고 있는 과정입니다. 그러다 CMD에 관리자 권한을 부여하는지 물어보게 되는데, 그때 꼭 '예'를 눌러주시기 바랍니다. 이 부분이 MinGW를 환경변수에 등록하는 과정입니다. 예를 누르지 않을 경우, 수동으로 환경변수에 등록해주어야될 수 도 있습니다. 그 후 C/C++ Extension까지 설치를 정상적으로 완료하게 되면 아래와 같은 화면이 나오게 됩니다.

image

이제 다시 GCC 설치 / 환경변수 등록 여부를 확인합시다.

image

아까까지 실행되지 않던 GCC명령어가 환경변수에 잘 등록되어 적용된것을 볼 수 있습니다.

만약 기존에 MinGW가 설치되어있는 상태라면 충돌을 방지하기 위해 아래와 같은 오류창을 출력합니다 image

  1. Settings

image

다른 옵션을 보기 전 먼저 View Settings를 먼저 보겠습니다. 이 옵션에서는 기본적인 이 소프트웨어의 정보를 볼 수 있습니다. 여기서 가장 중요한건 이 소프트웨어에 지정되어있는 프로젝트 경로입니다. 프로젝트 경로는 사용자가 만들 프로젝트들이 저장되는 기본 디렉토리를 의미합니다. 이 프로그램에서는 제가 기본적으로 'C:\CProjectDir'라는 임의의 디렉토리를 지정하였습니다. 이 디렉토리가 없다고요? 걱정하지 마세요. 프로그램에서 최초 실행시 디렉토리 존재하지 않을 경우 알아서 생성합니다.

만약 이 프로젝트 디렉토리를 바꾸고 싶다면 프로젝트 경로로 지정하고 싶은 경로를 6번 옵션에 입력해 주면 됩니다. 파일 경로는 아래 사진과 같이 하이라이트 친 부분을 클릭하면 나오는 경로를 복사 붙여넣기해주시면 됩니다. 복사 붙여넣기 방법이 아닌 그냥 경로를 입력해 지정하고 싶은 경우 입력해주시면 알아서 디렉토리를 생성하고, 프로젝트 디렉토리로 지정합니다. 디렉토리를 변경하고 다시 settings를 가면 프로젝트 디렉토리가 변경되어있는것을 볼 수 있습니다. 이 변경된 디렉토리는 바꾼 즉시부터 적용되며, 프로그램을 다시 시작해도 최근 지정한 프로젝트 디렉토리로 고정됩니다.

image

image

image

만약 경로를 그냥 입력하는 방법에서 잘못된 디렉토리나 만들수 없는 디렉토리를 입력한 경우 아래와 같이 오류 창이 나오게되며 프로그램을 종료합니다. 프로그램을 바로 종료하는것은 내부 데이터 꼬임 방지를 위한 것이며, 이는 v. 2.0.0에서 최적화작업을 통해 개선할 예정입니다.

image

  1. Initiate_new_C_C++_Project

이제 새로운 프로젝트를 생성해봅시다. 5번 옵션을 들어가면 아래와 같은 창이 나옵니다. 그럼 새로 생성하고싶은 프로젝트의 이름을 입력하면 프로젝트 환경을 자동으로 초기화 하고, 해당 프로젝트에서 VSCode를 실행하게됩니다.

image

그리고 지정한 프로젝트 디렉토리에 직접 들어가봐도 프로젝트가 생성된것을 볼 수 있습니다.

image

그렇다면 실험으로 C파일 하나를 만들어 디버깅과정을 해보겠습니다. 임의의 코드를 작성하고 중단점 설정후 F5를 눌러 디버깅을 하니 아무 문제 없이 잘 되는모습을 볼 수 있습니다

image

  1. Open Existing Project

이 옵션과 다음 옵션 설명을 위해 테스트 프로젝트 2개를 더 생성했습니다. image

이 옵션은 지정한 프로젝트 내에 있는 기존에 생성한 프로젝트를 선택해 Visual Studio Code로 여는것을 수행합니다. 예를 들어 저는 week2라는 프로젝트를 열고싶다고 가정합니다. image

그럼 아래 사진과 같이 바로 프로젝트가 열리는것을 볼 수 있습니다. 만약 선택한 프로젝트가 이미 열려있다면 해당 열린 창을 다시 엽니다. image

  1. Delete Existing Project

이 4번 옵션은 기존 생성한 프로젝트를 삭제하는 옵션입니다. 만약 week3를 삭제하고 싶다면 해당 번호를 선택합니다. 그러면 정말 선택할 것인지 yes혹은 no를 입력하는 창이 나오게 됩니다. no를 입력하면 다시 메인으로, yes를 클릭하면 삭제를 합니다. 이과정에서 삭제하면 복구가 불가능하니 신중하시기 바랍니다 image

그리고 만약 현재 작업중인 week1디렉토리를 삭제하고 싶다고 합시다. 만약 현재 프로세스가 가동중이거나 열려있는 상태의 프로젝트를 삭제하려고 하는 경우에는 아래 사진과 같이 윈도우 권한 오류가 뜨게 됩니다. 만약 이 오류창이 뜬다면 해당 프로젝트의 특정 프로세스가 가동중이라는 뜻이니 삭제전 확인해 주시기 바랍니다. image

  1. command

이 소프트웨어에서는 /exit, /back두개의 커맨드를 지원합니다. 어떤 상황에서 각 명령어를 실행할 수 있는지 알려드리겠습니다.

  • exit : 프로그램 종료

    image

  • /back : 이전단계로(help,Install_MinGW_64bit_and_build_basic_ENV,view settings를 제외한 옵션에서 모두 사용가능)

    image

    image

    image

    image

이것으로 소프트웨어 사용 방법에대한 설명을 마치겠습니다.

You might also like...
pyToledo is a Python library to interact with the common virtual learning environment for the Association KU Leuven (Toledo).

pyToledo pyToledo is a Python library to interact with the common virtual learning environment for the Association KU Leuven a.k.a Toledo. Motivation

Python implementation of an automatic parallel parking system in a virtual environment, including path planning, path tracking, and parallel parking
Python implementation of an automatic parallel parking system in a virtual environment, including path planning, path tracking, and parallel parking

Automatic Parallel Parking: Path Planning, Path Tracking & Control This repository contains a python implementation of an automatic parallel parking s

Application launcher and environment management
Application launcher and environment management

Application launcher and environment management for 21st century games and digital post-production, built with bleeding-rez and Qt.py News Date Releas

This simple script generates a backup of a given Python and R environment

Python Environment Backup It’s always good to maintain your Python and R Anaconda environment packages properly listed and well-kept in case you have

DC619/DC858 Mainframe Environment/Lab
DC619/DC858 Mainframe Environment/Lab

DC619 Training LPAR The file DC619 - Mainframe Overflows Hands On.pdf contains the labs and walks through how to perform them. Use docker You can use

The mock Pokemon Environment I built in 2019 to study Reinforcement Learning + Pokemon

ghetto-pokemon-rl-environment ##NOT MAINTAINED! Fork and maintain yourself. Environment I made back in 2019 to use Pokemon to practice reinforcement l

A simple wrapper to analyse and visualise reinforcement learning agents' behaviour in the environment.
A simple wrapper to analyse and visualise reinforcement learning agents' behaviour in the environment.

Visrl Visrl (pronounced "visceral") is a simple wrapper to analyse and visualise reinforcement learning agents' behaviour in the environment. Reinforc

Collection of tools to be more productive in your work environment and to avoid certain repetitive tasks. 💛💙💚
Collection of tools to be more productive in your work environment and to avoid certain repetitive tasks. 💛💙💚

Collection of tools to be more productive in your work environment and to avoid certain repetitive tasks. 💛💙💚

PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld.
PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld.

PressurePlate is a multi-agent environment that requires agents to cooperate during the traversal of a gridworld. The grid is partitioned into several rooms, and each room contains a plate and a closed doorway.

Releases(v_1.0.3)
Owner
Junho Yoon
필요한건 만들어 쓰는 타입
Junho Yoon
Программа для практической работы №12 по дисциплине

Информатика: программа для практической работы №12 Код и блок-схема программы для практической работы №12 по дисциплине "Информатика" (I семестр). Сут

Vladislav 1 Dec 07, 2021
A simple chatbot that I made for school project

Chatbot: Python A simple chatbot that I made for school Project. Tho this chatbot is dumb sometimes, but it's not too bad lol. Check it Out! FAQ How t

Prashant 2 Nov 13, 2021
JD扫码获取Cookie 本地版

JD扫码获取Cookie 本地版 请无视手机上的提示升级京东版本的提示! 下载链接 https://github.com/Zy143L/jd_cookie/releases 使用Python实现 代码很烂 没有做任何异常捕捉 但是能用 请不要将获取到的Cookie发送给任何陌生人 如果打开闪退 请使

Zy143L 420 Dec 11, 2022
Zapiski za ure o C++-u

cpp-notes Zapiski o C++-u. Objavljena verzija je na https://e6.ijs.si/~jslak/c++/ Generating the notes The setup assumes you are working in a Linux en

Jure Slak 1 Jan 05, 2022
Dot Browser is a privacy-conscious web browser with smarts built-in for protection against trackers and advertisments online.

🌍 Take back your privacy with Dot Browser, the privacy-conscious web browser that protects you from being tracked and monitored online.

Dot HQ 1k Jan 07, 2023
Just a little benchmark for scrapper PC's

PopMark Just a little benchmark for scrapper PC's This benchmark is for old computer that dont support other benchmark because of support. Like lack o

Garry 1 Nov 24, 2021
Konomi: Kind and Optimized Next brOadcast watching systeM Infrastructure

Konomi 備考・注意事項 現在 α 版で、まだ実験的なプロダクトです。通常利用には耐えないでしょうし、サポートもできません。 安定しているとは到底言いがたい品質ですが、それでも構わない方のみ導入してください。 使い方などの説明も用意できていないため、自力でトラブルに対処できるエンジニアの方以外に

tsukumi 243 Dec 30, 2022
A collection of daily usage utility scripts in python. Helps in automation of day to day repetitive tasks.

Kush's Utils Tool is my personal collection of scripts which is used to automated daily tasks. It is a evergrowing collection of scripts and will continue to evolve till the day I program. This is al

Kushagra 10 Jan 16, 2022
Built as part of an assignment for S5 OOSE Subject CSE

Installation Steps: Download and install Python from here based on your operating system. I have used Python v3.8.10 for this. Clone the repository gi

Abhinav Rajesh 2 Sep 09, 2022
Devil - Very Semple Auto Filter V1 Bot

Devil Very Semple Auto Filter V1 Bot

2 Jun 27, 2022
Check COVID locations of interest against Google location history

Location of Interest Checker Script to compare COVID locations of interest to Google location history. The script produces a map plot (as shown below)

9 Mar 30, 2022
Controller state monitor plugin for EVA ICS

eva-plugin-cmon Controller status monitor plugin for EVA ICS Monitors connected controllers status in SFA and pushes measurements into an external Inf

Altertech 1 Nov 06, 2021
The mock Pokemon Environment I built in 2019 to study Reinforcement Learning + Pokemon

ghetto-pokemon-rl-environment ##NOT MAINTAINED! Fork and maintain yourself. Environment I made back in 2019 to use Pokemon to practice reinforcement l

2 Dec 09, 2021
PBN Obfuscator: A overpowered obfuscator for python, which will help you protect your source code

PBN Obfuscator PBN Obfuscator is a overpowered obfuscator for python, which will

Karim 6 Dec 22, 2022
Материалы для курса VK Углубленный Python, весна 2022

VK Углубленный Python, весна 2022 Материалы для курса VK Углубленный Python, весна 2022 Лекции и материалы (слайды, домашки, код с занятий) Введение,

10 Nov 02, 2022
An ongoing curated list of frameworks, libraries, learning tutorials, software and resources in Python Language.

Python Development Welcome to the world of Python. An ongoing curated list of frameworks, libraries, learning tutorials, software and resources in Pyt

Paul Veillard 2 Dec 24, 2021
Library for Memory Trace Statistics in Python

Memory Search Library for Memory Trace Statistics in Python The library uses tracemalloc as a core module, which is why it is only available for Pytho

Memory Search 1 Dec 20, 2021
An audnexus client, providing rich author and audiobook data to Plex via it's legacy plugin agent system.

Audnexus.bundle An audnex.us client, providing rich author and audiobook data to Plex via it's legacy plugin agent system. 📝 Table of Contents About

David Dembeck 248 Jan 02, 2023
Insights in greek football league 2020-2021 and bookmaker's accuracy

Greek_Football_League_Analysis_2020_2021 Aim of Project: This project aims in deriving useful insights from greek football league 2020-2021 by mean st

2 Jan 16, 2022
A Lego Mindstorm robot for dealing out cards based on a birds-eye view of a poker table and given ArUco fiducial tags.

A Lego Mindstorm robot for dealing out cards based on a birds-eye view of a poker table and given ArUco fiducial tags.

4 Dec 06, 2021