рдХреНрдпрд╛ рдореИрдВ C ++ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ?


рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рд▓рд┐рдирдХреНрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ / рдлрд┐рд░ рд╕реЗ рдЙрддрд░рдирд╛ рдкрдбрд╝рд╛ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдорд╛рдорд▓рд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реВрдВ, рдореИрдВ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд▓ рдореИрдВ рдмрд╣реБрдд рдХреБрдЫ рднреВрд▓ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рдПрдХ рдорд╣реАрдиреЗ рдореЗрдВ рдореИрдВ рдлрд┐рд░ рд╕реЗ рдЧреВрдЧрд▓ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдпрд╣ рд╣реИ рдХрд┐ рдЕрдХреНрд╕рд░ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдореМрдЬреВрджрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдмреИрд╢ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢ рдпрд╛ рдХреБрдЫ рдФрд░ ... рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдорддрднреЗрдж рд╣реИрдВ, рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдмреИрд╢ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВред рдФрд░ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдкрд╛рдиреА рдХрд╛ рдЫреАрдВрдЯрд╛ рдпрд╛ рд░рд╛рдЦ рд╣реИ? рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ ... рдЗрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрднреА рднреА рдорддрднреЗрдж рд╣реИрдВ, рдФрд░ рд╡реЗ рднреНрд░рдорд┐рдд рд╣реИрдВред рдФрд░ рд╣рд╛рдВ, рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдХреЗрдХ рдкрд░ рдЪреЗрд░реА рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреБрдЫ рд╕реЗрдб рдпрд╛ рдЬрд╛рдЧ рдХреЛ рдмреБрд▓рд╛рддреА рд╣реИ рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рддреЗ рд╣реИрдВредрдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдпреЛрдЧреНрдпрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЕрдм рдореЗрд░рд╛ рдзреИрд░реНрдп рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдЕрдм рд╕реЗ рдореИрдВ рд╕реА ++ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ...

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдЪреНрдЪреЗ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрд╢рджреНрд░реЛрд╣реА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдкрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ?

рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдореИрдВ рд╕реА ++ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрд╕реА рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдпрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдпрд╛рдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╢рдмрдВрдЧ рдФрд░ "рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░" рдХреЗ рд▓рд┐рдП рдкрде рдХрд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

#!/bin/c++

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдмрд╛рдж рдХреА рд▓рд╛рдЗрдиреЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЛрдЧреАред

рдореБрдЭреЗ c ++ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ "рджреБрднрд╛рд╖рд┐рдпрд╛" рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдо рд╕реЗ рдХрдо рдмреИрд╢ рдкрд░ (рдпрд╣ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ)ред рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдПрдХ рд╕рдВрдХрд▓рдХ рд╣реЛрдЧрд╛ред

рд╡рд╣реА рдореИрдВрдиреЗ рдХрд┐рдпрд╛:

#!/bin/bash

msg_file=/dev/null
#msg_file=/dev/stdout

tmp_path=$HOME"/.cache/c++/"
mkdir -p $tmp_path
tmp_file=$1".c++"
exe_file=$1".bin"
if test $1 -nt  $tmp_path$exe_file; then
    echo "Need to recompile.." > $msg_file
    tail -n +2 $1 > $tmp_path$tmp_file
    eval "g++ -o $tmp_path$exe_file $tmp_path$tmp_file > /dev/null 2>&1"
    if [ $? -eq 0 ]
    then
	echo "Compiled ok" > $msg_file
    else
	echo "Compile error" > $msg_file
	exit 255
    fi
fi
eval "$tmp_path$exe_file $@1"

рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХрд╛ рд╣рд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЕрд╕реНрдерд╛рдпреА рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ ~ / .cache / c ++ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЪреБрдирд╛ред рдореВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╢реЗрдмрдВрдЧ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ред рдпрд╣ рдкреВрдВрдЫ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдореВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдЯреЗрдВрд╢рди c ++ рдХреЗ рд╕рд╛рдеред рдПрдХреНрд╕рдЯреЗрдВрд╢рди .bin рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХрддреНрд░ рдХреА рдЬрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ "рдпрджрд┐ рдкрд░реАрдХреНрд╖рдг" рдЪреЗрдХ рдЙрд╕ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдмрд╛рдЗрдирд░реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рд╕рдВрдХрд▓рди рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореМрдЬреВрджрд╛ рдмрд╛рдЗрдирд░реА рдореВрд▓ "рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреБрд░рд╛рдиреА рд╣реЛред рдмрд╛рдЗрдирд░реА рдХреЛ eval рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рд╣реИрдВред

рдЗрд╕ c ++ рдлрд╝рд╛рдЗрд▓ рдХреЛ / bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (chmod a + x)ред

рдореИрдВ рдЕрдкрдиреА рдкрд╣рд▓реА "рд╕реА ++ рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛:

#!/bin/c++

#include <stdio.h>
#include <iostream>

using namespace std;

int main( int argc, char *argv[] )
{
    cout << "hello world!\n";
    for( int i=0; i<argc; i++)
    {
	cout << "Param" << i <<  " is " << argv[i] << "\n";
    }
    return 60+argc;
}

рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╕ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ + 60 рджреЗрддрд╛ рд╣реИред рдореИрдВ
рдЕрдкрдиреА "рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдЪрд▓рд╛рддрд╛ рд╣реВрдВ:



рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ !!!

рдпрджрд┐ рдЖрдк c ++ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди $ рдЧреВрдВрдЬ? 255 рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣реА рдерд╛ред

C ++ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЬрдмрд░рджрд╕реНрдд рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд░рд┐рдЪрд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ред рджреВрд╕рд░реЗ, рдорд╛рдирдХ рд╡рд░реНрдЧ рдЬреИрд╕реЗ std :: рд╡реЗрдХреНрдЯрд░, std :: map рдпрд╛ std :: string рдФрд░ рдЕрдиреНрдп рдЕрдкреВрд░рдгреАрдп рдЪреАрдЬреЗрдВ рд╣реИрдВред рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ - рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рд▓рд╛рдЗрди рдореЗрдВ рджреЗрдЦреЗрдВ, рдЗрд╕реЗ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рддреЛрдбрд╝реЗрдВ, рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЬреАрддреЗрдВ, рдПрд░реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдФрд░ рдореБрдЭреЗ рди рддреЛ рдкрд╛рд▓рдХреА рдХреА рдЬрд░реВрд░рдд рд╣реИ рди рд╣реА рдЬрд╛рдЧрдиреЗ рдХреАред рддреАрд╕рд░рд╛, рдбрд┐рдмрдЧрд░ - рднрдЧрд╡рд╛рди! рдХреНрдпрд╛ рдЖрд╢реАрд░реНрд╡рд╛рдж рд╣реИ! рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ gdb рдбреАрдмрдЧрд░ рд╣реИ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк std :: filesystem (рдпрджрд┐ рд╕рдВрдХрд▓рдХ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ...

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдЕрдХреНрд╕рд░ рдореЗрд░реЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдлрд┐рд░ рдореИрдВ рд╕реЛрдЪреВрдВрдЧрд╛: "рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?" рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реВрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: https://github.com/dimgel/cpp-linux-scripts рд╡рд┐рдЪрд╛рд░ рд╕рдорд╛рди рд╣реИ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрд▓рдЧ рд╣реИред рдлрд┐рд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдиреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рдЕрдкрдиреА рдЧреИрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдореЗрдВ рдереЛрдбрд╝реА рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реБрдЖред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рд╣рдмрд░ рдХреА рддрд▓рд╛рд╢ рдХреА - рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЙрддреНрд╕реБрдХ рд▓рдЧрддрд╛ рд╣реИ?

All Articles