Как использовать make с C ++ 14 с g cc 4.8.5 в RedHat 7.5 - PullRequest
0 голосов
/ 06 мая 2020

У меня g cc 4.8.5 установлен на машине Red Hat 7.5. Я использую sh для компиляции программного пакета на этой машине. Чтобы скомпилировать этот пакет, мне нужно запустить «make». Однако, когда я запускаю это, я вижу следующее сообщение об ошибке «error: 'make_unique' не является членом 'std'». Я понимаю (возможно, неверно), что это сообщение происходит из-за того, что 4.8.5 использует C ++ 11, а make_unique требует C ++ 14. Итак, я предполагаю, что способ его компиляции - указать, что C ++ 14 должен использоваться, когда я запускаю make. Как мне это сделать?

Я попытался установить C ++ на 14 следующим образом: cmake -G "Unix Makefiles" -D CMAKE_CXX_STANDARD = 14

И затем я запустил "make ".

Но это дало то же сообщение об ошибке.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Чтобы использовать C ++ 14 или даже C ++ 17, вы можете скомпилировать его с помощью RH Devtoolset 8 . Созданное программное обеспечение будет работать в целевой ОС без каких-либо дополнительных усилий из-за «природы» компилятора DTS: символы, доступные в поставляемой ОС libstdc++, будут разрешены динамически, а C ++ 11 и выше будут связаны вам исполняемый файл из специально созданного stati c libstdc++.a, предоставляемого DTS.

0 голосов
/ 06 мая 2020

Вы используете компилятор, не поддерживающий C ++ 14. Как указано в документации , :

G CC поддерживает исходный стандарт ISO C ++ (1998) и содержит экспериментальную поддержку второго стандарта ISO C ++ (2011).

Это неудивительно, поскольку G CC 4.8 изначально был выпущен в 2013 , поэтому было бы странно, если бы он реализовал стандарт, представленный годом позже.

...