2016-10-05 2 views
4

После обновления в Sierra I я обновил свой Xcode с 7.2.1 до Xcode 8. Таким образом, проблема могла произойти только путем обновления Xcode. Я понизился до 7.2.1 и все еще получил ту же проблему.предупреждение: раздел «__textcoal_nt» не рекомендуется с момента обновления до Mac OSX Sierra

Это ошибка я получаю при компиляции программы на C++

/var/folders/cj/1h3_84h56c9bgzt_ryhpf4940000gn/T//ccgjxtCM.s:4:11: warning: section "__textcoal_nt" is deprecated 
     .section __TEXT,__textcoal_nt,coalesced,pure_instructions 
       ^ ~~~~~~~~~~~~~ 
/var/folders/cj/1h3_84h56c9bgzt_ryhpf4940000gn/T//ccgjxtCM.s:4:11: note: change section name to "__text" 
     .section __TEXT,__textcoal_nt,coalesced,pure_instructions 
       ^ ~~~~~~~~~~~~~ 
/var/folders/cj/1h3_84h56c9bgzt_ryhpf4940000gn/T//ccgjxtCM.s:54:11: warning: section "__textcoal_nt" is deprecated 
     .section __TEXT,__textcoal_nt,coalesced,pure_instructions 
       ^ ~~~~~~~~~~~~~ 
/var/folders/cj/1h3_84h56c9bgzt_ryhpf4940000gn/T//ccgjxtCM.s:54:11: note: change section name to "__text" 
     .section __TEXT,__textcoal_nt,coalesced,pure_instructions 

Программа по-прежнему работает, но отображается это сообщение. Даже когда единственное в коде - класс, который я сделал, называемый графом, и у меня есть такой код, появляется ошибка.

void explore(Graph & G, int x) 
{ 
    Node* nodePtr = &G.changeNode(x); 
} 

Я попытался сделать это в командной строке, и она не работает

sudo xcode-select -s /Library/Developer/CommandLineTools 

Это билд я использую в Sublime Text, но даже с другой C++ компилятор, это не C++ 11 Я получаю ту же ошибку. Ошибка также появляется в командной строке.

{ 
    "shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\"", 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
    "working_dir": "${file_path}", 
    "selector": "source.c, source.c++", 

    "shell_cmd": "g++ -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}\" && \"${file_path}/${file_base_name}\"" 
} 

Единственное, что я думаю, может работать как с помощью патчей, которые я видел на некоторых потоков, которые находятся на этом сайте

http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151012/305992.html 

Я понятия не имею, как использовать их или работать, хотя.

+0

У меня тоже проблема. Ранее я задал несколько аналогичный вопрос по адресу http://stackoverflow.com/questions/39502921/warning-section-const-coal-is-deprecated-error-after-updating-xcode-to-la/39522660#39522660, который был разрешен после переключения пути командной строки, но после того, как я разрешил это и ОБНОВЛЯЛСЯ к MacOS Sierra, он снова имеет все эти ошибки. – iteong

+0

Спасибо за информацию. Лемме знаю, понимаете ли вы это. – djent

ответ

5

Ответ здесь: https://solarianprogrammer.com/2016/09/22/compiling-gcc-6-macos/

Вы можете смело игнорировать все эти предупреждения, они связаны с сборочного кода, сгенерированного GCC и не имеют ничего общего с кодом C++.

К сожалению, на данный момент невозможно дать указание GCC не использовать __textcoal_nt или отключить указанные выше предупреждения. Быстрое и грязное обходное решение - отфильтровать выход компилятора с чем-то вроде:

g++-6 main.cpp -o main 2>&1 >/dev/null | grep -v -e '^/var/folders/*' -e '^[[:space:]]*\.section' -e '^[[:space:]]*\^[[:space:]]*~*' 
+0

Спасибо. Это работает в командной строке, но я не мог включить его в мою возвышенную сборку текста. Хорошо пока. – djent

Смежные вопросы