第 1 頁 (共 1 頁)
gcc 無法編譯 C++?
發表於 : 11/03/2004 1:13 pm
由 ulysses
我用 Xcode 1.5 的 gcc 在編譯 .cpp 檔案的時候,發生一些狀況無法成功編譯。在 Compile 階段沒有問題,但是在 Link 時就出現 Undefined Symbol。而且都是很基本的型別像 std::cout 之類的。
是不是 gcc 命令要設定什麼旗標,或是加上某些指定 link 的 library 之類?
Re: gcc 無法編譯 C++?
發表於 : 11/03/2004 3:05 pm
由 ulysses
ulysses 寫:我用 Xcode 1.5 的 gcc 在編譯 .cpp 檔案的時候,發生一些狀況無法成功編譯。在 Compile 階段沒有問題,但是在 Link 時就出現 Undefined Symbol。而且都是很基本的型別像 std::cout 之類的。
是不是 gcc 命令要設定什麼旗標,或是加上某些指定 link 的 library 之類?
自問自答:
使用 g++ 指令,或是 gcc 在最後 Link 時加上 /usr/lib/gcc/darwin/3.3/libstdc++.a 就可以了
剛剛發現 Xcode 的 gcc 版本還滿新的,abstract class 的 virtual function pointer 在編譯時會自己檢查,公司 Linux 上的版本都不會檢查,就直接讓你 runtime error
發表於 : 11/03/2004 6:58 pm
由 janusng
看來 ulysses 兄的 dev. tools 真的 corrupted 得挺嚴重!
兄台還是重新 install Dev. Tools 吧!

發表於 : 11/03/2004 7:41 pm
由 ulysses
janusng 寫:看來 ulysses 兄的 dev. tools 真的 corrupted 得挺嚴重!
兄台還是重新 install Dev. Tools 吧!

嗚嗚~有那麼嚴重嗎...
test.cpp
代碼: 選擇全部
#include <iostream.h>
int main(void) {
std::cout << "Hello World";
return 0;
}
拜託各位試試,如果直接用 gcc -o test test.cpp 編譯,會不會出現 Link Error ?
我是要用 g++ 編譯才行。
另外當我用 Xcode 開 C++ Command Line Project,source 裡面會有一個 libstdc++.a
於是我也把他寫到 Makefile 裡面,就可以正常編譯。
發表於 : 11/03/2004 9:09 pm
由 DJYANG
拜託各位試試,如果直接用 gcc -o test test.cpp 編譯,會不會出現 Link Error ?
會
我是要用 g++ 編譯才行。
same here
發表於 : 11/04/2004 1:15 am
由 janusng
對不起,初看時看錯了以為 ulysses 說 Xcode 不能 compile C++。
是的,gcc 雖然會跟 extension,選用 C、C++ 或 Obj-C 的 syntax,但default library path 是不包括 libstdc++.a 的,不要忘了 gcc 是 c compiler,只 link 了libstc.a。在各大平台也是如此的。
g++ 才是 c++ 的 compiler 嘛。

發表於 : 11/04/2004 8:17 am
由 ulysses
janusng 寫:對不起,初看時看錯了以為 ulysses 說 Xcode 不能 compile C++。
是的,gcc 雖然會跟 extension,選用 C、C++ 或 Obj-C 的 syntax,但default library path 是不包括 libstdc++.a 的,不要忘了 gcc 是 c compiler,只 link 了libstc.a。在各大平台也是如此的。
g++ 才是 c++ 的 compiler 嘛。

謝了。
說起來我也十幾年沒有寫過 C++ 程式了,想當年是在 SPARC SunOS 的機器上編譯,那時候我用的是哪個編譯器忘掉了,不過我記得不是 g++。
發表於 : 11/04/2004 12:06 pm
由 janusng
十多年了?SUN 自己有推出 C++ compiler,會不會是 SUN C++?還是 SPARC C++?