標頭檔案包含cpp檔案的乙個坑

2021-07-26 16:57:15 字數 532 閱讀 7546

問題描述:

1.在 乙個.h(甲)檔案中直接包含了.cpp(乙)檔案

2.在.cpp(乙)檔案修改了一些內容,然後編譯專案。

3.執行後修改的部分沒有效果。

4.但是修改其他.cpp(丙)檔案,編譯專案是可以看到效果的。

原因查詢:

1.專案編譯的時候會把所有.cpp檔案編譯一遍,生成.obj

2.一般做法,我們在.h(甲)中中包含另乙個.h(乙)檔案,這樣其他.cpp(乙)修改後,甲在鏈結乙會反應乙效果。但是我們直接包含.cpp(乙)的話,這個cpp(乙)被正常編譯,但是.cpp(甲)沒有重新編譯,也就是說他鏈結的是之前的乙的cpp編譯的效果。這樣導致出現我現在這個問題。

解決辦法:

1.甲(cpp檔案)不要包含到專案中。

2.將甲的屬性修改:從生成中去除

今天遇到的這個坑,深深感慨自己基礎的薄弱,明眼人很快看出來,汗啊~  繼續加油。



乙個包含所有c 的標頭檔案的標頭檔案

include 使用和平常的標頭檔案一樣,如下 includeusing namespace std int main int a,b cin a b cout include這個標頭檔案包含以下等等c 中包含的所有標頭檔案 include include include include inclu...

乙個標頭檔案包含的問題

foo.h foo.c mainfile.c foo.c 定義結構體 foo.h定義 mainfile.c 原因 mainfile.c中包含了foo.h,即有了typedef.定義了gf bitstream。但是,對於 tag bitstream的定義,卻是在foo.c 中定義的,所以包含了foo....

標頭檔案的相互包含

標頭檔案的相互包含在編譯時如果順序不注意就很容易造成編譯錯誤。遇到乙個標頭檔案,一開始並沒有包含其他標頭檔案而是定義了一些列舉,然後再包含另外乙個標頭檔案,這樣就很類似於 1 1 2 1 1 在1標頭檔案中包含2標頭檔案,預處理時就是以這樣的形式處理交給編譯器,原本的用意是在1標頭檔案的包含2之前的...