编辑2:
所以这里是程序的一个例子:
#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
。但是它似乎isspace
不在 libgcc++.dylib 中。
有什么想法可以尝试吗?
编辑1:
确实,4.8 解决了这个问题isspace
,但另一个浮出水面 - toupper
:
Undefined symbols for architecture x86_64:
"toupper(int)", referenced from: ...
这里发生了什么?!。它与新的 Xcode (5.0) 有关吗?