繁体   English   中英

关于在C ++中使用外部库的困惑

[英]Confusion about using external libraries in c++

在c / c ++中,我们使用-I指定头文件位置,并使用-L path指定库路径。 我有一个本征和增强库,所以我所做的是将这些库复制到linux中的/ usr / include目录中,并且在程序的源文件中,我只使用了这些库的头文件。 我的问题是这些库的源文件如何与我仅使用这些库的头文件的程序源文件链接?

这取决于您使用的库。 Eigen3是仅标头的:无需链接它。 使用Boost时,要视情况而定。 大多数部分都是仅标头的,但某些库可能需要链接。

关于复制到/usr/include 这听起来非常错误。 使用发行版的软件包管理器来获取所需库的软件包。 您几乎永远都不要将文件直接放入/usr/{include|lib...} ,而应该使用/usr/local/{include|lib...}

您对源代码和目标代码也有些困惑。 通常,一个库将包含编译的,对象,代码,但是C ++模板扩展需要某种源代码或类似源代码的代码才能执行模板实例化。

但是,最重要的是,包含库的语法取决于您使用的编译器/链接器组合。 您需要声明,在有人可以完全回答问题之前。

目录“ / usr / include”被认为是特殊的目录,它是您正在使用的操作系统或平台的一部分,因此您不应将文件复制到其中。

注意,“ c / c ++”的构造不是很有意义-两种语言C和C ++具有不同的语法和不同的链接模型。 最好说出您的意思。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM