[問題] 用gcc編譯c++ header

看板C_and_CPP作者 (西瓜綠)時間13年前 (2012/12/01 23:59), 編輯推噓5(507)
留言12則, 7人參與, 最新討論串1/1
因為某些原因 我必須利用gcc去編譯c++的程式 我用c++的語法在一個header file中定義了一個class 但是會compile error 並輸出 error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before '(class 名稱)' 我在猜想是因為gcc不知道這個標頭檔是c++的語法寫的 所以把它當成c去編譯 不知道有沒有甚麼解決的辦法?? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.233.145.172

12/02 00:02, , 1F
改用g++可以嗎?XD
12/02 00:02, 1F

12/02 00:04, , 2F
g++可以 但是必須使用gcc...
12/02 00:04, 2F

12/02 00:05, , 3F
這需求有點詭異,可以大概描述原因或用途嗎?
12/02 00:05, 3F

12/02 00:06, , 4F
GCC 的 C++ compiler 就 g++ 啊
12/02 00:06, 4F

12/02 00:15, , 5F
gcc -xc++
12/02 00:15, 5F

12/02 00:16, , 6F
另外 header 通常不構成 compile unit,也不需要編
12/02 00:16, 6F

12/02 15:37, , 7F
我猜你需要的是用 C++ 編出 C 可以 link 的 object 檔?
12/02 15:37, 7F

12/02 18:58, , 8F
如果是樓上說的情況:extern C: { //your_code_here }
12/02 18:58, 8F

12/02 19:06, , 9F
gcc只是compiler driver ="= 真正的compiler => cc1
12/02 19:06, 9F

12/02 19:10, , 10F
在gnu compiler collection的架構下會先打成它的IR
12/02 19:10, 10F

12/02 19:19, , 11F
做完優化後,才會吐成assembly、交給ld,as
12/02 19:19, 11F

12/02 19:22, , 12F
你敲g++或者gcc(原則上)只是告訴他要用哪個前端
12/02 19:22, 12F
文章代碼(AID): #1GkYbSuN (C_and_CPP)