编辑:我知道包含警卫,但包含文件不是问题.我正在谈论实际编译和已链接的代码,这些代码被烘焙到静态库中.
我正在为C自己创建一个通用实用程序库.
我正在创建的函数之一printFile需要string,cout和标准库的其他此类成员.
我担心在编译库时,然后链接到另一个也使用字符串和cout的项目时,字符串和cout的代码将被复制:它将在程序所链接的库二进制文件中预先链接,它将再次与使用它们的项目相关联.
该库的结构如下:
>有一个libname.hpp文件,使用该库的程序员应该在他的项目中进行#include.
>对于在libname.hpp中声明的每个函数fname,都有一个文件fname.cpp来实现它.
>所有fname.cpp文件也包含#include“libname.hpp”.
>库本身编译成libname.a,它被复制到/usr/lib /.
这会发生吗?
如果是的话,它是一个问题吗?
如果是,那我该如何避免呢?