为什么我不能将静态库包含在 cpp 文件中?

why can't i include a static library into a cpp file?

本文关键字:cpp 文件 包含 不能 静态 为什么      更新时间:2023-10-16

是否有办法#include "library。或者在CPP或cc文件中是。so或。o ?

我想这样做,因为我在另一个文件中使用这个文件。

#include为c++代码。

.a, .so.o文件不是c++代码。

您更有可能想要#include一个c++头文件(通常以.h.hpp结尾),并且链接一个目标文件。

您可以在Visual c++编译器中使用#pragma comment(lib, "libname")来完成此操作-并且相似性有些可疑。但是,您必须为自己喜欢的编译器找到任何替代方案。

#include用于告诉编译器关于您将在代码中调用的库中的函数,也就是说它包含c++代码。通常采用头文件的形式,其中包含函数声明。

。A和。so和。o文件是编译后的代码,可以使用链接器链接到编译后的代码中。

编辑:这里有关于编译和链接的介绍

#include语句基本上只是将其他源代码包含到当前文件中。也就是说,静态库不是源代码,不能以这种方式包含。静态(和共享)库在所有编译完成后被链接到项目中。

你所要做的就是包括一个包含你将要使用的函数原型的文件。这样编译器就知道它在那里,链接器就会把剩下的部分整理出来。

有关如何创建和链接静态/共享库的更多信息,请查看此页面

这根本没有意义。

通过链接在编译时包含库的代码。

通常有一个你可以包含的库的头文件