ZyLiu's Blog

头文件包含以及库文件包含

字数统计: 321阅读时长: 1 min
2018/08/31 Share

防止重复包含头文件

在头文件中包含头文件常导致重复定义的问题。Windows平台上常常使用#pragma once的方式来防止重复定义,但在跨平台项目上这么做就不太适用了。
因此我们常常使用预定义的方式来防止重复定义的问题。之前我只是知道有这么回事,但并不知道是如何实现的,下面对其进行总结。
以某个头文件"header.h"为例:

1
2
3
4
5
6
7
8
9
# ifndef __HEADER_H__
#define __HEADER_H__

/*
*header.h body
*
*/

#endif

如果该头文件已被包含,那么头文件中的定义不会被重复定义。

库文件的包含

在Windows中,有两种方式可以包含库文件。

一种是在代码中添加:

1
#pragma comment(lib, "libname.lib")

另一种是在项目 - 属性 - 配置属性 - 链接器 - 输入 - 附加依赖项中添加库文件。

如果上述两种方式只添加了文件名而没有路径,则需要在项目 - 属性 - 配置属性 - 链接器 - 常规 - 附加库目录中添加库文件的路径。

在Linux操作系统中,使用makefile指定包含的库文件。

比如需要包含GNUC库文件librt.so,在make时指定-lrt即可。

CATALOG
  1. 1. 防止重复包含头文件
  2. 2. 库文件的包含