---
title: "C++11 na MacOS 10.8.5, a nawet 10.4.11"
url: https://michalasobczak.pl/pl/posts/c11-on-macos-10-8.html
author: "Michał Sobczak"
description: "Próbowałem skompilować swój kod C++ z funkcjami C++11 w GCC 4.2.1, które jest domyślne na moim MacBookPro3,1 z MacOS 10.8.5. Użyłem biblioteki random, więc potrzebowałem nowszej wersji GCC – a dokładniej co najmniej 4.7."
published: 2022-11-26T16:45:28.000Z
updated: 2024-08-29T08:23:50.000Z
language: pl
categories: ["Hobby"]
tags: ["Programming", "macOS", "Vintage Computing"]
license: CC BY-NC-ND 4.0 (https://creativecommons.org/licenses/by-nc-nd/4.0/)
---
# C++11 na MacOS 10.8.5, a nawet 10.4.11

Próbowałem skompilować swój kod C++ z funkcjami C++11 w GCC 4.2.1, które jest domyślne na moim MacBookPro3,1 z MacOS 10.8.5. Użyłem biblioteki random, więc potrzebowałem nowszej wersji GCC – a dokładniej co najmniej 4.7. Mam już na tej maszynie MacPorts (instrukcję instalacji znajdziesz [tutaj](https://michalasobczak.pl/pl/posts/macports-installation-on-10-8-5.html)). A więc:

```bash
/opt/local/bin/port install gcc5
```

Teraz mogę kompilować:

```text
/opt/local/bin/g++-mp-5 -std=c++11 main.cpp
```

Nawet jeśli używasz GCC 5.5.0, musisz przekazać flagę włączającą C++11.

Jeśli ktoś uważa, że to było zbyt łatwe, to spróbujmy zrobić to samo na MacOS 10.4.11 na PowerBooku3,4. Pierwsza rzecz to instalacja XCode 2.5, który podobno jest ostatnim dla systemu 10.4. Możesz go pobrać z xcodereleases.com po zalogowaniu się swoim Apple ID. Zainstaluj XCode, a następnie pobierz MacPorts 2.8.0. Potem zainstaluj GCC 5 tym samym poleceniem co wcześniej. Tym razem budowanie będzie trwało wieki, bo sprzęt jest znacznie słabszy niż w nowszym MacBookPro3,1. W tym czasie komputer tak się nagrzał, że nie mogłem nawet dotknąć klawiatury. Było to około 50 stopni Celsjusza przy chłodzeniu i ponad 65 stopni bez chłodzenia.

```bash
sudo /opt/local/bin/port -f deactivate libunwind-headers
sudo /opt/local/bin/port install apple-gcc42
sudo /opt/local/bin/port install gcc5
```

Niestety GCC 5 nie jest obsługiwane i trzeba zainstalować GCC 4.8 albo przynajmniej 4.7. Przygotuj się na jeden dzień budowania libgcc6, kolejny dzień na libgcc7, jeszcze jeden na samo GCC i pół dnia na pozostałe rzeczy.
