EDIT2:未定義符號「在toupper」 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的一種工作編譯腳本。 最近我更新到新的osx(10.9)和gcc 4.7從macports停止鏈接。特別是我有:
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)有關嗎?
你有沒有包含頭文件? –
asalic
是的,問題仍然存在。 – Denis
順便說一句,根據我的理解,沒有標題將導致編譯錯誤,而不是鏈接錯誤 – Denis