仅包含一个#include的.cpp文件有什么意义?

Joe*_*ane 7 c++ header include

我正在使用第三方库开始一些工作,当在Visual Studio 2010中构建它时,我注意到我多次收到此链接器警告(LNK4221).我查看了创建链接的目标文件时使用的源代码,发现这些源代码文件的所有实现都位于头文件中.有趣的是,我还注意到该项目包含相应的.cpp文件,其中包含带有实现的标头的#include.

我很好奇 - 这是什么意思,为什么我要使用这种技术?如果.cpp文件没有向项目添加任何值,为什么我不应该删除它们以摆脱链接器警告?

我试着寻找类似的问题,但没有找到任何有趣的东西.如果您知道,请链接他们.

Tor*_*zki 1

我用它来确保标头至少位于第一个位置包含的一个文件中。通过这样做,我确保标头可以自行编译。

为了使链接器不发出警告,可以使用具有非常大变量的外部变量:

int variable_with_a_name_that_includes_the_file_name_somehow = 42;
Run Code Online (Sandbox Code Playgroud)