Skip to content

Pyrokines17/RepForCPP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Π—Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° рСпозитория для Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎ курсу "ООП (Π‘++)" ЀИВ НГУ

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ справка, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Git ΠΈ GitHub

НСкоторыС шаги Π½ΠΈΠΆΠ΅ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ Π΄Π΅Π»Π°Π»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.

  1. Π—Π°Π²ΠΎΠ΄ΠΈΠΌ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° GitHub.
  2. УстанавливаСм Git Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (для Windows ΠΊΠ°Ρ‡Π°Π΅ΠΌ ΠΎΡ‚ΡΡŽΠ΄Π°).
  3. Если Ρƒ вас Windows, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π² контСкстном мСню Open Git Bash here.
  4. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ SSH-ΠΊΠ»ΡŽΡ‡ ΠΈ привязываСм Π΅Π³ΠΎ ΠΊ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρƒ Π½Π° GitHub, слСдуя инструкциям ΠΎΡ‚ΡΡŽΠ΄Π°.
  5. НаТимаСм Use this template -> Create a new repository Π½Π° этой страницС, открываСтся ΠΎΠΊΠ½ΠΎ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория Π½Π° основС Π΄Π°Π½Π½ΠΎΠ³ΠΎ. Π’Π²ΠΎΠ΄ΠΈΠΌ имя, Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Private, ΠΆΠΌΠ΅ΠΌ Create repository.
  6. На страницС вашСго рСпозитория ΠΈΠ΄Ρ‘ΠΌ Π² Settings -> Collaborators -> Add people, Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΌΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ (dsavenko), Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Add ....
  7. Π’ ΠΎΠΊΠ½Π΅ Git Bash выполняСм ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git clone <git-ссылка>. Git-ссылку ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π° страницС вашСго рСпозитория (Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Code), ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄ git@github.com:dsavenko/nsu-oop-cpp-template.git.
  8. Π’ ΠΏΠ°ΠΏΠΊΠ΅ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ вашСго рСпозитория Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π»Π΅ΠΆΠΈΡ‚ Π΅Π³ΠΎ локальная копия, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с локальной ΠΊΠΎΠΏΠΈΠ΅ΠΉ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚Π΅, удаляётС, мСняСтС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.
  2. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π»ΠΈΡ‚ΡŒ измСнСния Π½Π° GitHub, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Git Bash Π² ΠΏΠ°ΠΏΠΊΠ΅ вашСго рСпозитория ΠΈ выполняСтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
    $ git add .
    $ git commit -m "ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ"
    $ git push
    
  3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ всё Π·Π°Π»ΠΈΡ‚ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git status:
    $ git status
    On branch master
    Your branch is up to date with 'origin/master'.
    
    nothing to commit, working tree clean
    
    Если Π²Ρ‹Π²Π΅Π»Π° Ρ‚Π°ΠΊΠΎΠ΅, Ρ‚ΠΎ всё ОК.
  4. ΠšΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΏΡƒΡˆΠΈΡ‚ΡŒ рСкомСндуСтся часто, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ.

РСкомСндуСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Git Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Π—Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° CMake + GoogleTest

Π’ ΠΏΠ°ΠΏΠΊΠ΅ lab1 Π»Π΅ΠΆΠΈΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с использованиСм кроссплатформСнной систСмы сборки CMake ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ тСстирования GoogleTest.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅:

  1. main.cpp - рСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main. НС рСкомСндуСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² этот Ρ„Π°ΠΉΠ» Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.
  2. task1/2.h, task1/2.cpp - Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.
  3. task1/2_test.cpp - тСсты (с использованиСм GoogleTest).
  4. CMakeLists.txt - ΠΏΡ€Π°Π²ΠΈΠ»Π° сборки для CMake.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ сборкС:

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π² систСмС установлСн компилятор C++. Для Windows ΠΏΡ€ΠΎΡ‰Π΅ всСго ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Visual Studio (компилятор ΠΈΠ΄Ρ‘Ρ‚ вмСстС с Π½Π΅ΠΉ), Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, mingw/cygwin + gcc). Для Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм (Linux, Mac OS) установитС gcc.
  2. УстановитС CMake.

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

  1. CΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ build Π²Π½ΡƒΡ‚Ρ€ΠΈ lab1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Ρ‘. ВсС дальнСйшиС дСйствия Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠ· этой ΠΏΠ°ΠΏΠΊΠΈ.
  2. ЗапуститС cmake ... Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ созданиС Π±ΠΈΠ»Π΄-скриптов Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.
  3. ЗапуститС сборку ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cmake --build . (ΠΏΠΎΠ΄ Linux/MacOS/cygwin/mingw Ρ‚Π°ΠΊΠΆΠ΅ сработаСт просто make). Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· для пСрСсборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
  4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ nsuoop-cpp-template(.exe) ΠΈ test(.exe). Под Windows ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ Debug.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ CMake GUI.

Visual Studio ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ CMake, поэтому ΠΌΠΎΠΆΠ½ΠΎ просто ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π² Π½Π΅ΠΉ. Π’ этом случаС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°ΠΏΠΊΠΎΠΉ для сборки Π±ΡƒΠ΄Π΅Ρ‚ out/build, Π° Π½Π΅ build.

Как Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния:

  1. ΠŸΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ h/cpp-Ρ„Π°ΠΉΠ»Ρ‹ для пСрСсборки Π½ΡƒΠΆΠ½ΠΎ снова ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ cmake --build . (ΠΈΠ»ΠΈ make). Если ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ IDE, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ это сама.
  2. ΠŸΡ€ΠΈ создании Π½ΠΎΠ²Ρ‹Ρ… (ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ старых) cpp-Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ CMakeLists.txt (см. ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Π½Ρ‘ΠΌ). ПослС этого снова ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ cmake --build . (ΠΈΠ»ΠΈ make). Π­Ρ‚ΠΎ Π½Π΅ относится ΠΊ h-Ρ„Π°ΠΉΠ»Π°ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ трансляции. h-Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, Π½Π΅ мСняя CMakeLists.txt.

Π”Π°ΠΆΠ΅ Ссли ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Visual Studio ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ IDE, CMakeLists.txt всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½Π° любой систСмС Π±Π΅Π· ΠΏΠΎΠΌΠΎΡ‰ΠΈ IDE.

About

Repository for CPP OOP labs

Resources

Stars

Watchers

Forks