C 編譯那些事

2021-10-01 16:27:14 字數 609 閱讀 1170

最近想從pcl庫中繼承類進行改寫,然後遇到了很多問題,這裡記錄一下,自己是菜鳥,編譯什麼的都不太懂。

我們一般都是.cpp和.h的形式,pcl是在.h中定義,然後在.hpp中實現,.cpp的作用我現在也沒搞明白,還有涉及預編譯什麼的,蒙;

從庫的.h和.hpp分別複製了檔案出來,命名成自己的,繼承類也改了名:

原來的.**件中b:a,c:b,一開始我只複製了c:b,並給c改了名,但是提示沒有定義b,然後又複製了b:a,這時問題來了,b進行了重複定義,正確做法應該是include原來的.**件,不要重定義b;

然後複製完.**件後,記得最上面#ifndef語句必須要修改,不然這個.**件不會起作用;

提示庫里缺少乙個.hpp檔案,看usr/local中對應的資料夾下確實缺少這個檔案,但是pcl自己的繼承類就沒有這個問題,不知道怎麼規避的,沒辦法,使用cp指令拷貝進去;

同事說一般要麼.cpp+.h,要麼.hpp,不要.h和.hpp混用,然後我就刪除了.hpp,把內容複製到.cpp,但是一直提示unreference,鏈結不到;

最後發現,模板類涉及二次編譯,因此需要存放在同乙個.h或者.hpp檔案中,不能放到.cpp檔案中,因此把函式的實現就放在.**件的定義後面,也就是說直接實現就可以了;

gcc g 編譯的那些事

嚴重宣告 本帖絕非技術貼,只是在g 編譯時遇到些百思不得其解的錯誤,而且這種錯誤應該很少人犯,寫下來僅供你實在找不錯出錯地方時的 柳暗花明又一村 我在編譯時總是提示 cprocessmodule.cpp中68行乙個變數 o typename 未宣告 注 cprocessmodule.cpp在src目...

關於Winform編譯配置那些事

這次我們來聊聊winform編譯中的那些屬性設定,也算對這部分知識的乙個梳理。debug release platform不同設定的內部差別 常規設定 錯誤和警告 將警告視為錯誤 輸出高階設定 在使用visual studio的過程中,工具欄上面的build欄是我們常常開啟顯示而不怎麼去關注的乙個地...

關於Winform編譯配置那些事

這次我們來聊聊winform編譯中的那些屬性設定,也算對這部分知識的乙個梳理。debug release platform不同設定的內部差別 常規設定 錯誤和警告 將警告視為錯誤 輸出高階設定 在使用visual studio的過程中,工具欄上面的build欄是我們常常開啟顯示而不怎麼去關注的乙個地...