Mac OSX 10.9 Mavericksを使っている。homebrewを使ってインストールしたgcc48のg++でコードをコンパイルしていると、次のようなエラーが出た。
Undefined symbols for architecture x86_64: "isalpha(int)", referenced from: (略) ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status
isalphaが無いとのこと。isalphaがないとかありえない。これは、cctype functions (e.g. isprint) not defined at link time when using g++ -std=c++11が原因。g++でコンパイルするときに-std=c++11オプションをつけるとcctypeがリンクできないとのこと。
解決方法があって、/usr/include/sys/cdefs.hを開いて
#elif defined(__GNUC__) && defined(__GNUC_STDC_INLINE__)
を
#elif defined(__GNUC__) && defined(__GNUC_STDC_INLINE__) && !defined(__cplusplus)
に書き換えれば良い。なお、編集時にはsudoを使う。
sudo vim /usr/include/sys/cdefs.h
これでコンパイルが通るはず。