我正在为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