【问题标题】:How to create a static library in Visual Studio 2008 with inl files?如何在 Visual Studio 2008 中使用 inl 文件创建静态库?
【发布时间】:2011-11-15 07:19:01
【问题描述】:

我正在从包含用于接口的 .h 文件和用于实现的 .inl 文件的项目中编译静态库,而 Visual Studio 2008 没有为我生成 .lib,可能的原因是什么?

【问题讨论】:

  • “inl 文件”是什么意思?
  • @Nicol Bolas:这些是带有 .inl 扩展名的文件,用于内联定义。

标签: c++ visual-studio-2008 static-libraries inline-code


【解决方案1】:

如果您的库是仅包含头文件的库(所有内容都是#included),则无需编译。编译器仅编译源代码(.cpp 文件、.c 等)。如果您的所有代码都是模板,如果您的代码没有任何 .cpp 文件,那么您不会生成任何源代码。用户只包含一些标题。

例如,大多数 Boost 仅是标题。您只需包含它;你没有链接到任何一个。

换句话说,如果你的所有代码都是内联的,那么它们都不是静态的。所以没有静态库。

【讨论】:

  • +1 听起来好像没有编译代码,所以没有 .lib 文件
【解决方案2】:

编译器处理 .inl 文件的方式与处理 .h 文件的方式相同 - 它不会单独编译它们。您必须将它们包含到 .cpp 文件中才能编译它们。

【讨论】:

  • 有效,但会导致这个奇怪的警告:“警告 LNK4221:未找到公共符号;存档成员将无法访问”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 2021-01-05
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多