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
I³ Tracker for Essential Open Innovation Datasets

I³ Tracker for Essential Open Innovation Datasets This repository is set up to track, version, and contribute updates to the I³ Essential Open Innovat

1 Feb 08, 2022
HashDB Binary Ninja Plugin

HashDB Plugin (v0.1) Author: Vector 35 Inc Plugin for interacting with the OALABS HashDB service. Description: Plugin that can be used to lookup hashe

Jordan 3 Jul 30, 2022
A python package to manage the stored receiver-side Strain Green's Tensor (SGT) database of 3D background models and able to generate Green's function and synthetic waveform

A python package to manage the stored receiver-side Strain Green's Tensor (SGT) database of 3D background models and able to generate Green's function and synthetic waveform

Liang Ding 7 Dec 14, 2022
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 clos

Autonomous Agents Research Group (University of Edinburgh) 6 Dec 03, 2022
🐍 A Python lib for (de)serializing Python objects to/from JSON

Turn Python objects into dicts or (json)strings and back No changes required to your objects Easily customizable and extendable Works with dataclasses

Ramon Hagenaars 253 Dec 14, 2022
FBChecker Account using python , package requests and web old facebook

fbcek FBChecker Account using python , package requests and web old facebook using python 3.x apt upgrade -y apt update -y pkg install bash -y pkg ins

XnuxersXploitXen 5 Dec 24, 2022
Roblox Limited Sniper For Python

Info this is version 2.1 version 3 will support more options (install python: https://www.python.org) the program will buy any limited item with a pri

1 Dec 09, 2021
Python samples for Google Cloud Platform products.

Google Cloud Platform Python Samples Python samples for Google Cloud Platform products. Setup Install pip and virtualenv if you do not already have th

Google Cloud Platform 6k Jan 03, 2023
Dockernized ZeroTierOne controller with zero-ui web interface.

docker-zerotier-controller Dockernized ZeroTierOne controller with zero-ui web interface. 中文讨论 Customize ZeroTierOne's controller planets Modify patch

sbilly 209 Jan 04, 2023
Sathal's Python Projects Repository

Sathal's Python Projects Repository Purpose and Motivation I come from a mainly C Programming Language background and have previous classroom experien

Sam 1 Oct 20, 2021
Import modules and files straight from URLs.

Import Python code from modules straight from the internet.

Nate 2 Jan 15, 2022
Media Cloud Outlet Filtering

Using ABYZ and Media-Bias Fact-Check outlet databases, I've provided outlet CSV files for both and scripts to intended to match Media Cloud files to respective outlets.

Stephen Scarano 1 Feb 02, 2022
Clear merged pull requests ref (branch) on GitHub

GitHub PR Cleansing This tool is used to clear merged pull requests ref (branch) on GitHub. GitHub has no feature to auto delete branches on pull requ

Andi N. Dirgantara 12 Apr 19, 2022
This is a fork of the BakeTool with some improvements that I did to have better workflow.

blender-bake-tool This is a fork of the BakeTool with some improvements that I did to have better workflow. 99.99% of work was done by BakeTool team.

Acvarium 3 Oct 04, 2022
Ssma is a tool that helps you collect your badges in a satr platform

satr-statistics-maker ssma is a tool that helps you collect your badges in a satr platform 🎖️ Requirements python = 3.7 Installation first clone the

TheAwiteb 3 Jan 04, 2022
Use a real time weather API to apply wind to your mouse cursor.

wind-cursor Use a real time weather API to apply wind to your mouse cursor. Requirements PyAutoGUI pyowm Usage This program uses the OpenWeatherMap AP

Andreas Schmid 1 Feb 07, 2022
A python trivium implemention

A python trivium implemention

tnt2402 1 Nov 12, 2021
India's own RPA Platform Python Powered

Welcome to My-AutoPylot , Made in India with ❤️ What is My-AutoPylot? PyBots is an Indian firm based in Vadodara, Gujarat. My-AutoPylot is a product d

PyBots Pvt Ltd 28 Sep 12, 2022
This is the improvised version of Dobot Magician which can be implemented for Dobot M1

pydobotM1 This is the edited driver for Dobot M1 version of the original pydobot library intended for use with the Dobot Magician. Here's what you nee

Shaik Abdullah 2 Jul 11, 2022
A competition for forecasting electricity demand at the country-level using a standard backtesting framework

A competition for forecasting electricity demand at the country-level using a standard backtesting framework

5 Jul 12, 2022