老地方冰果室交流區

歡迎冰果室讀者在此交流
現在的時間是 11/17/2019 9:04 pm

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 8 篇文章 ] 
發表人 內容
 文章主題 : gcc 無法編譯 C++?
文章發表於 : 11/03/2004 1:13 pm 
離線
討論區管理員
頭像

註冊時間: 05/18/2001 1:01 am
文章: 2475
來自: Forgotten Realm
我用 Xcode 1.5 的 gcc 在編譯 .cpp 檔案的時候,發生一些狀況無法成功編譯。在 Compile 階段沒有問題,但是在 Link 時就出現 Undefined Symbol。而且都是很基本的型別像 std::cout 之類的。

是不是 gcc 命令要設定什麼旗標,或是加上某些指定 link 的 library 之類?

_________________
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.


回頂端
 個人資料  
 
文章發表於 : 11/03/2004 3:05 pm 
離線
討論區管理員
頭像

註冊時間: 05/18/2001 1:01 am
文章: 2475
來自: Forgotten Realm
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

_________________
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 11/03/2004 6:58 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1048
來自: Metropolis Asylum
看來 ulysses 兄的 dev. tools 真的 corrupted 得挺嚴重!

兄台還是重新 install Dev. Tools 吧! 8)

_________________
圖檔
It is not god who created man. It is man who created God.

Light travels faster than sound. This is why some people appear bright until you hear them speak.


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 11/03/2004 7:41 pm 
離線
討論區管理員
頭像

註冊時間: 05/18/2001 1:01 am
文章: 2475
來自: Forgotten Realm
janusng 寫:
看來 ulysses 兄的 dev. tools 真的 corrupted 得挺嚴重!
兄台還是重新 install Dev. Tools 吧! 8)


嗚嗚~有那麼嚴重嗎... :(

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 裡面,就可以正常編譯。

_________________
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 11/03/2004 9:09 pm 
離線
常吃冰

註冊時間: 03/19/2002 1:01 am
文章: 257
來自: USA/BOSTON
引言回覆:
拜託各位試試,如果直接用 gcc -o test test.cpp 編譯,會不會出現 Link Error ?



引言回覆:
我是要用 g++ 編譯才行。

same here


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 11/04/2004 1:15 am 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1048
來自: Metropolis Asylum
對不起,初看時看錯了以為 ulysses 說 Xcode 不能 compile C++。 :oops:

是的,gcc 雖然會跟 extension,選用 C、C++ 或 Obj-C 的 syntax,但default library path 是不包括 libstdc++.a 的,不要忘了 gcc 是 c compiler,只 link 了libstc.a。在各大平台也是如此的。

g++ 才是 c++ 的 compiler 嘛。 :wink:

_________________
圖檔
It is not god who created man. It is man who created God.

Light travels faster than sound. This is why some people appear bright until you hear them speak.


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 11/04/2004 8:17 am 
離線
討論區管理員
頭像

註冊時間: 05/18/2001 1:01 am
文章: 2475
來自: Forgotten Realm
janusng 寫:
對不起,初看時看錯了以為 ulysses 說 Xcode 不能 compile C++。 :oops:
是的,gcc 雖然會跟 extension,選用 C、C++ 或 Obj-C 的 syntax,但default library path 是不包括 libstdc++.a 的,不要忘了 gcc 是 c compiler,只 link 了libstc.a。在各大平台也是如此的。
g++ 才是 c++ 的 compiler 嘛。 :wink:


謝了。
說起來我也十幾年沒有寫過 C++ 程式了,想當年是在 SPARC SunOS 的機器上編譯,那時候我用的是哪個編譯器忘掉了,不過我記得不是 g++。

_________________
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 11/04/2004 12:06 pm 
離線
嗜冰客
頭像

註冊時間: 04/30/2001 1:01 am
文章: 1048
來自: Metropolis Asylum
十多年了?SUN 自己有推出 C++ compiler,會不會是 SUN C++?還是 SPARC C++?

_________________
圖檔
It is not god who created man. It is man who created God.

Light travels faster than sound. This is why some people appear bright until you hear them speak.


回頂端
 個人資料  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 8 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
POWERED_BY
正體中文語系由 竹貓星球 維護製作