我正在爲C++庫(ITK)創建一個外部模塊,我正在用cmake和make(我在Ubuntu VM上)構建它。爲什麼當我鏈接到一個庫時會出錯,但是當我構建它時不會出錯?
假設代碼中存在錯誤,例如重新定義方法。在這種情況下,該庫與cmake ../src && make && sudo make install
構建時沒有錯誤,但是當我嘗試將某個項目鏈接到庫時出現錯誤。
爲什麼錯誤不會停止庫的構建? make
的行爲有所不同,這些情況是否有根本性的不同?我對C++(以及一般的編譯語言)相當陌生 - 我想有一些關於構建過程的基礎知識,我並不瞭解。我發現很難搜索這個 - 搜索「C++庫沒有編譯錯誤」給了我很多關於C++庫編譯錯誤的線程。
你在鏈接時得到的是什麼錯誤? – 2015-02-09 12:35:55
那麼,在方法重定義的例子中,類似'error:redefinition o f'void itk :: PhaseDerivativeVarianceImageFilter :: PrintSelf(std :: ostream&,itk :: Indent)const'' –
2015-02-09 12:37:18
一般我明白這些錯誤來自哪裏,一旦我得到它們 - 我只是不理解編譯器在編譯庫時爲什麼不選擇它們。 – 2015-02-09 12:38:03