Apple Mach-O Linker (ld) Error の詳細
Xcodeを使っていて以下のリンカーに関するエラーが出たとき、
Apple Mach-O Linker (ld) Error
Linker command failed with exit code 1 (use -v to see invocation)
もっと詳しい情報を見るにはReport Navigatorを開く。
確認したい時刻のBuildを選択すると右に詳細が出てくるので、
さらに確認したいエラー部分の横棒が並んでるマークを押すと、詳しいエラー内容がみれる。
例) duplicate symbols for architecture x86_64
「duplicate symbols for architecture x86_64」だった場合の解決例。
これの原因は様々だが、一例としては、ヘッダーファイルにグローバルな関数を書いている場合がある。
例えば
hello.h
void hello(string s){
std::cout << s << std::endl;
}
と書いている場合、上のコードを.cpp内に移行することで解決する。
.h内でもその関数を使っている場合、
hello.h
void hello(string s);
hello.cpp
void hello(string s){
std::cout << s << std::endl;
}
とすれば良い。