2016-10-05 8 views
4

Sierraにアップデートした後、Xcodeを7.2.1からXcode 8にアップデートしました。私は7.2.1にダウングレードしても、同じ問題を抱えています。警告:Mac OSX Sierraにアップデートして以来、「__textcoal_nt」セクションは非推奨です

これは、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); 
} 

私は、コマンドラインでこれをやってみました、それはこれは私が崇高なテキストで使用ビルドですが、それでも他とC++ 11ではありませんC++コンパイラ

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

を動作しませんでした私は同じエラーが発生します。コマンドラインにもエラーが表示されます。

{ 
    "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

情報ありがとうございます。もしあなたがそれを理解するなら、Lemmeは知っています。 – djent

答えて

5

答え:あなたが安全にすべてのこれらの警告を無視することができますhttps://solarianprogrammer.com/2016/09/22/compiling-gcc-6-macos/

は、これらは、GCCによって生成されたアセンブリコードに関連して、C++コードとは何の関係もありません。

残念ながら、現時点では、__textcoal_ntを使用しないようにGCCに指示する方法や、上記の警告を消す方法はありません。クイックで汚れた回避策は、コンパイラの出力を次のようにフィルタリングすることです。

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

ありがとうございます。それはコマンドライン上で動作しますが、私はそれを私の崇高なテキストビルドに組み込むことはできませんでした。しかし今は良い。 – djent

関連する問題