[問題] C 改寫成C++的error LNK2005

看板C_and_CPP (C/C++)作者 (十月‧佛手柑‧紅茶)時間16年前 (2010/01/31 18:36), 編輯推噓3(3012)
留言15則, 4人參與, 最新討論串1/1
由於我要結合兩個程式碼,一份是C code,一份是C++ code 所以我打算把 C code改成 C++ code。(只有單純改 C code 那份檔案) 再改寫之前,確定程式可以執行沒有問題。 目前遇到的問題是 一直出現 RRR.obj :error LNK2005: "XXX" 已在 CCC.obj 中定義過了~ 我有到網路上先查詢過這類的error。 目前試過的方法都無效。 ex. 改「執行階段程式庫」(Runtime Library) 的項目 或是 指定「忽略特定程式庫」(Ignore Specific Library) 我所參考網頁的網址: http://ppt.cc/Z,To 也檢查過include的部分,應該沒有重複include~ 也確認過沒有宣告和定義寫在同檔的混亂情況。(宣告就在.h, 定義就在.cpp) 不知道版上的大大們有沒有處理過類似的問題? 拜託大家了~> < -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.90.211

01/31 18:51, , 1F
程式碼的問題? 把CODE PO上來看看
01/31 18:51, 1F

01/31 18:54, , 2F
你有建專案嗎?? 先把兩個cpp各自compile一次 再作build
01/31 18:54, 2F

02/01 10:00, , 3F
改成靜態連結看有沒有用@@
02/01 10:00, 3F

02/01 10:07, , 4F
一個是確定專案是完整rebuild的, 另一個就是貼code來看.
02/01 10:07, 4F

02/01 10:53, , 5F
謝謝各位大大的回答~ 目前問題已經解決了~^^
02/01 10:53, 5F

02/01 10:54, , 6F
沒有把code貼上來是因為很大坨~ 不知道是哪邊出問題~
02/01 10:54, 6F

02/01 10:55, , 7F
不知道該貼哪部分~ 我大致上把我處理的方法說一下~
02/01 10:55, 7F
用修改文章比較好看~^^" 我發現我的error中 重複定義的變數~ 也重複出現在其他error中~ 所以我推測應該是重複include同樣的.h檔所造成的~ 後來再會重複include的.h檔中宣告的變數前加上 "extern" 就解決這個問題了~ 真的非常謝謝大家的幫忙~ ※ 編輯: shimoning 來自: 140.112.90.211 (02/01 10:59) ※ 編輯: shimoning 來自: 140.112.90.211 (02/01 11:00)

02/01 11:11, , 8F
那簡單的說, 你是在.h檔定義變數了, 然後多個檔案重覆
02/01 11:11, 8F

02/01 11:12, , 9F
include後, 就產生多個var在global scope出現, 所以
02/01 11:12, 9F

02/01 11:12, , 10F
Linker才會argu error; 不過加extern, 最後不是還是得找
02/01 11:12, 10F

02/01 11:12, , 11F
個.cpp檔放真正的定義嗎??
02/01 11:12, 11F

02/01 13:12, , 12F
V大說的沒錯~ 我後來就在同檔名的cpp檔中~ 放入真正的定
02/01 13:12, 12F

02/01 13:13, , 13F
義~ 不知道這樣子做好不好~或是有更好的寫法?
02/01 13:13, 13F

02/01 13:52, , 14F
Hmm~~如果需要這樣share global var, 這樣做就可以了;
02/01 13:52, 14F

02/01 13:52, , 15F
上面的疑問只是好奇應該還要補一個真正的定義才對:)
02/01 13:52, 15F
文章代碼(AID): #1BPLqIL8 (C_and_CPP)
文章代碼(AID): #1BPLqIL8 (C_and_CPP)