Qt / Objective-C ++ 11 рдпрд╛ GCC-4.7 рдФрд░ Clang рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Qt рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рд╕рднреА рдХреЛ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!

рдЖрдЬ рдореИрдВ рдкреНрдпрд╛рд░реЗ рдлреЗрд░реАрд╡рд╛рд▓реЛрдВ рдХреЛ рдПрдХ рдФрд░ рд╡рд┐рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ - рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХреЗ рддрд╣рдд Qt рдореЗрдВ рд▓рд┐рдЦреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ GCC-4.7.0 рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рд╛рде рдХреНрд▓реИрдВрдЧ рдХреЗ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдирд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рднреА рдХреНрдпреЛрдВ рд╕рдордЭреЗрдВрдЧреЗ? )ред

рд╣рдореЗрдВ GCC 4.7 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдЦреИрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, C ++ 11 рдорд╛рдирдХ рд╕реЗ рдЙрди рд╕рднреА рд╢рд╛рдВрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ? рдирдП рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ Xcode GCC 4.2 (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ i686-apple-darwin11-llvm-g ++ - 4.2 рд╣реИ) рдХреЗ рд╕рд╛рде рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕реБрдзрд╛рд░ рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 4.7 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИред

рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ Cocoa рд╕реЗ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдУрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░ - рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА ++, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рд╣рдорд╛рд░реЗ рдХреНрдпреВрдЯреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╣рдо GCC-4.7.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╕реЗ ), рд▓реЗрдХрд┐рди рд╣рдо рдЬреЗрдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЦреБрдж рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдКрдкрд░ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА [++] рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдпрд╣ рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рдЖрдк рд╕рдм рдХреБрдЫ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рд╕реЗ ), рдпрд╛ рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рднреА рдХрд╛рдо рдХрд░реЗрдЧреАред рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЗрд╕реЗ рдмреНрд░реВ рдФрд░ рд╡рд┐рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

 #!/bin/bash # # This script downloads and builds GCC 4.7.0 for Mac OS X. # Depends on: brew, wget # # This file is modifyed version of script by Konrad Rudolph, found here: # http://apple.stackexchange.com/questions/38222/how-do-i-install-gcc-via-homebrew # VERSION=4.7.0 VER_SHORT=4.7 PREFIX=/usr/local/gcc-${VER_SHORT} TEMP_DIR=temp-gcc LANGUAGES=c,c++,objc,obj-c++ MAKE='make -j 4' echo "Preparing to install GCC ${VERSION}..." echo " Installation path: ${PREFIX}" echo " Temporary dir: ${TEMP_DIR}" echo " Programming languages: ${LANGUAGES}" brew-path() { brew info $1 | head -n3 | tail -n1 | cut -d' ' -f1; } # Prerequisites echo echo "Installing gmp, mpfr and libmpc using brew..." brew install gmp brew install mpfr brew install libmpc # Download & install the latest GCC echo echo "Downloading GCC sources..." mkdir -p $PREFIX mkdir ${TEMP_DIR} cd ${TEMP_DIR} wget ftp://ftp.gnu.org/gnu/gcc/gcc-${VERSION}/gcc-${VERSION}.tar.gz tar xfz gcc-$VERSION.tar.gz rm gcc-${VERSION}.tar.gz cd gcc-${VERSION} mkdir build cd build echo echo "Configuring GCC..." ../configure \ --prefix=$PREFIX \ --with-gmp=$(brew-path gmp) \ --with-mpfr=$(brew-path mpfr) \ --with-mpc=$(brew-path libmpc) \ --program-suffix=-${VER_SHORT} \ --enable-languages=${LANGUAGES} \ --with-system-zlib \ --enable-stage1-checking \ --enable-plugin \ --enable-lto \ --disable-multilib echo echo "Building GCC..." $MAKE bootstrap echo echo "Installing GCC..." make install 
(рдЖрдк рдЧрд┐рддреБрдм рдкрд░ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)

рдЦреИрд░, рдЖрдзреЗ рдШрдВрдЯреЗ (┬▒) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рд╣рдо Gus 4.7.0 рдХреЛ /usr/local/gcc-4.7/bin рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдЖрдк рдЗрд╕рдХреА рдорджрдж рд╕реЗ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдмрд╕ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

 $ export PATH=/usr/local/gcc-4.7/bin:$PATH $ g++-4.7 --version g++-4.7 (GCC) 4.7.0 Copyright (C) 2012 Free Software Foundation, Inc.     .      .   - ,       - . 

рдЦреИрд░, рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдореЗрдХ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ? export PATH рдХреЛ export PATH рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ export PATH рд╣рдореЗрдВ qmake рдХреЛ рдмрддрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред

рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛, рдореЛрдЯрд╛, рдЯреЗрдврд╝рд╛ рдФрд░ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд - рдореВрд▓ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИред .Pro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

 macx { QMAKE_CXX = g++-4.7 QMAKE_CXXFLAGS += -std=c++11 -v QMAKE_CXXFLAGS_X86_64 -= -Xarch_x86_64 QMAKE_CC = gcc-4.7 QMAKE_CFLAGS += -std=c++11 -v QMAKE_CFLAGS_X86_64 -= -Xarch_x86_64 QMAKE_LINK = $$QMAKE_CXX QMAKE_LINK_SHLIB = $$QMAKE_CXX QMAKE_LINK_C = $$QMAKE_CC QMAKE_LINK_C_SHLIB = $$QMAKE_CC QMAKE_LFLAGS_X86_64 -= -Xarch_x86_64 QMAKE_OBJECTIVE_CFLAGS_X86_64 -= -Xarch_x86_64 } 

рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛, рд╕рд╛рдл-рд╕реБрдерд░рд╛, рд╕реБрдВрджрд░ рдФрд░ рд╕рд╣реА ред рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ mkspec рдмрдирд╛рдПрдВ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, /usr/local/Qt4.8/mkspecs , рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 sudo cp macx-g++ macx-g++47 sudo cp common/g++-base.conf common/g++47-base.conf sudo cp common/g++-macx.conf common/g++47-macx.conf 

рдЕрдЧрд▓рд╛, рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - mcedit), рд╣рдо рдлрд╝рд╛рдЗрд▓ macx-g++47/qmake.conf рдХреЛ рдирд┐рдореНрди рд░реВрдк рдореЗрдВ macx-g++47/qmake.conf :

 MAKEFILE_GENERATOR = UNIX TARGET_PLATFORM = macx TEMPLATE = app CONFIG += qt warn_on release app_bundle incremental global_init_link_order lib_version_first plugin_no_soname link_prl QT += core gui QMAKE_INCREMENTAL_STYLE = sublib include(../common/mac.conf) include(../common/gcc-base-macx.conf) include(../common/g++47-macx.conf) load(qt_config) 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо "47" рдХреЛ рдкреНрд░рдерд╛рдЧрдд рд░реЗрдЦрд╛ рдХреЗ рдмреАрдЪ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, common/g++47-macx.conf рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдПрдВ:

 include(g++47-base.conf) QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_DWARF2 QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_DWARF2 QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += -g $$QMAKE_CFLAGS_DWARF2 QMAKE_LFLAGS_STATIC_LIB += -all_load QMAKE_CFLAGS_X86_64 += -mmacosx-version-min=10.5 -std=c++11 QMAKE_CFLAGS_PPC_64 += -mmacosx-version-min=10.5 -std=c++11 QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 QMAKE_CXXFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64 QMAKE_OBJECTIVE_CFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 QMAKE_OBJECTIVE_CFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64 QMAKE_LFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 QMAKE_LFLAGS_PPC_64 = $$QMAKE_CFLAGS_PPC_64 QMAKE_OBJCFLAGS_PRECOMPILE = -x objective-c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE 

рдлрд┐рд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдЭрдВрдбреЗ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ MAGIC NUMBER 47 рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЕрдм рд╣рдо g++47-base.conf рд╕рдорд╛рдкреНрдд g++47-base.conf :

 QMAKE_CC = gcc-4.7 QMAKE_LINK_C = $$QMAKE_CC QMAKE_LINK_C_SHLIB = $$QMAKE_CC QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -g QMAKE_CXX = g++-4.7 QMAKE_LINK = $$QMAKE_CXX QMAKE_LINK_SHLIB = $$QMAKE_CXX QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_PCH_OUTPUT_EXT = .gch QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE 

рдЫрд╡рд┐ рдпрд╣рд╛рдБ рд╣рдордиреЗ рдлрд┐рд░ рд╕реЗ рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ "-4.7" рдЬреЛрдбрд╝рд╛ред рдЦреИрд░, рдпрд╣ рдХрд╛рдлреА рд╣реЛрдЧрд╛ред рдЕрдм рдЖрдк Qt Creator рдХреЛ рдирдП mkspec рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, Build & Run -> Tool Chains -> Add -> GCC , рдбреАрдмрдЧрд░ рдореЗрдВ /usr/local/gcc-4.7/bin/g++-4.7 , /usr/bin/gdb , рдФрд░ рдореЗрдВ /usr/bin/gdb , рдФрд░ mkspec - macx-g++47 ред рдЯреВрд▓рдЪрд┐рди рдХреЛ рд╣реА "GCC-4.7", "c ++ 11 рдХрдВрдкрд╛рдЗрд▓рд░" рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЖрдк рд╣рдорд╛рд░реЗ рдирдП рдЯреВрд▓рдЪреИрди рдФрд░ - рд╡реЙрдЗрд▓рд╛ рдХреЛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ! - рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣рдорд╛рд░реЗ рд╣реМрд╕рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рдПрдЧреА! рдпрджрд┐ рд╣рдо рдХрдВрд╕реЛрд▓ рд╕реЗ рдЗрд╕ рдкреВрд░реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ -spec macx-g++47 рдкреИрд░рд╛рдореАрдЯрд░ -spec macx-g++47 рд╕рд╛рде qmake рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ, рдЖрдк рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ ...

рдЕрдзрд┐рдХ рдареАрдХ рд╣реИ, рд╕рдорд╕реНрдпрд╛рдУрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ - рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА [++] рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдереЛрдбрд╝рд╛ рдЭреБрдХ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпреЛрдВ? рдХрд╛рд░рдг рд╕рд░рд▓ рд╣реИ: рдЬреАрд╕реАрд╕реА рд╕реЗ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рд╕рдВрдХрд▓рдХ рдмреНрд▓реЙрдХ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИ! рдРрд╕рд╛ рдХреИрд╕реЗ? рдХреНрдпреЛрдВ? рдХрд┐рд╕рдиреЗ рдЕрдиреБрдорддрд┐ рджреА? рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рд▓реЗрдХрд┐рди рдПрдХ рддрдереНрдп рдПрдХ рддрдереНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ C / C ++ рдХреЗ рдмрд╛рд╣рд░ рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЕрдлрд╝рд╕реЛрд╕ рд╣реИред рд▓реЗрдХрд┐рди рдЪрд▓реЛ рд╣рд┐рдореНрдордд рдирд╣реАрдВ рд╣рд╛рд░реА! рдпрджрд┐ рдЖрдк GCC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Objective-C [++] рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ рдХреНрд▓реИрдВрдЧ рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд┐рд░ рд╕реЗ g++47-base.conf рдФрд░ g++47-macx.conf , рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЕрдВрдд рддрдХ рдЬреЛрдбрд╝реЗрдВ:

 # in file g++47-base.conf QMAKE_OBJECTIVE_CC = clang # in file g++47-macx.conf QMAKE_OBJECTIVE_CFLAGS += -std=c++0x -stdlib=libc++ 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рд╕рднреА C / C ++ рд╕реНрд░реЛрддреЛрдВ рдХреЛ g ++ - 4.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ Objective-C [++] рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдХреНрд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрд╕рд╣рдЬ? рдмреЗрд╢рдХ, рдЕрд╕рд╣рдЬ! рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ C ++ 11 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди! рд╡рд╣ рдЕрднреА рднреА рдЬреАрд╕реАрд╕реА рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реА * .рдПрдордПрдо рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣рдо рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ C ++ 11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдирд▓реА рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╕рдм рдХреБрдЫ рдЭреЗрд▓ рдирд╣реАрдВ рдкрд╛рдПрдЧреАред рд▓реЗрдХрд┐рди * .рд╕реАрдкреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдШреВрдордирд╛ рд╣реИ!

рдпрджрд┐ рдЖрдк mkcpec рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рдЪреНрдЫреБрдХ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ github рдкрд░ рдЬрд╛рдПрдВ , рд╡рд╣рд╛рдВ рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ред рдФрд░ рдпрд╛рдж рд░рдЦрдирд╛! GCC 4.7 /usr/local/gcc-4.7/bin/ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрде рдирд┐рд░реНрдпрд╛рдд рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ! рд╣рд╛рд▓рд╛рдБрдХрд┐, Qt Creator рдореЗрдВ, рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдкрде рдореЗрдВ рдЗрд╕ рдкрде рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ! рдФрд░ рдХрдо рдЧрд▓рддрд┐рдпрд╛рдБ!

рдкреБрдирд╢реНрдЪ: рдпрджрд┐ рдЖрдкрдХреЛ рдЧрд▓рддрд┐рдпрд╛рдВ рдФрд░ / рдпрд╛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рдкрддрд╛ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ) =)ред

Source: https://habr.com/ru/post/In144707/


All Articles