EDIT2:未定義シンボル「TOUPPER」MacPortsの中GCC 4.7 OS-Xマーベリック10.9 C11
#include <stdio.h>
#include <ctype.h>
int main()
{
int i=0;
char str[]="Test String.\n";
char c;
while (str[i])
{
c=str[i];
putchar (toupper(c));
i++;
}
return 0;
}
1)打ち鳴らす:
clang++ -std=c++0x -stdlib=libc++ -lc++ main.cc -o main
ので、ここでは、プログラムの例であります
は問題なくコンパイルされます。
2)g++-mp-4.8 -std=c++11 main.cc -o main
ができます:
Undefined symbols for architecture x86_64:
"toupper(int)", referenced from:
_main in ccWjHauc.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
3)g++-mp-4.8 main.cc -o main
コンパイルを!
セットアップに問題がありますか?
==========
誰かは、GCC/MacPortsの/ OS 10.9で変更内容を理解するのに役立つことはできますか?
私はいくつかのサードパーティライブラリのコンパイルスクリプトをos 10.8で使用していました。 最近macportsがリンクを停止して新しいosx(10.9)とgcc 4.7に更新されました。特に、私が持っている:
Undefined symbols for architecture x86_64:
"isspace(int)", referenced from:
この問題はistype
ためhereに言及したものと非常に似ています。 しかし、isspace
はlibgcC++。dylibには載っていないようです。
どのようなアイデアを試してみませんか?
EDIT1:
実際、4.8はisspace
に問題を修正しますが、他は表面化 - toupper
:
Undefined symbols for architecture x86_64:
"toupper(int)", referenced from: ...
ここで何が起こっているのか?!。それは新しいXcode(5.0)に関連していますか?
はい、問題はまだあります。 – Denis
btw、私の理解では、ヘッダーがないと、リンクエラーではなくコンパイルエラーが発生する – Denis