当前位置:  开发笔记 > 编程语言 > 正文

仅使用头文件编译C++ .lib?

如何解决《仅使用头文件编译C++.lib?》经验,为你挑选了1个好方法。

我正在编译一个C++静态库,并且由于所有类都是模板化的,所以类定义和实现都在头文件中.结果,似乎(在visual studio 2005下)我需要创建一个包含所有其他头文件的.cpp文件,以便它能够正确地编译到库中.

为什么是这样?



1> sharkin..:

编译器不编译头文件,因为这些文件应包含在源文件中.在进行任何编译之前,预处理器会从任何包含的头文件中获取所有代码,并将代码放入包含它们的源文件中.如果编译器也应该编译头文件,那么你可以在很多方面有多个定义.

例如,这是预处理器看到的内容:

[foo.h]
void foo();

-

[mysource.cpp]
#include "foo.h"

int main()
{
   foo();
}

这就是编译器所看到的:

[mysource.cpp]
void foo();

int main()
{
   foo();
}

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有