【问题标题】:Why is Visual Studio ignoring an .h file in my project?为什么 Visual Studio 会忽略我项目中的 .h 文件?
【发布时间】:2016-02-01 00:55:47
【问题描述】:

当我发布 this question 关于尝试构建一个 DLL 却没有得到一个 DLL 时,一位评论者提到我可能没有在项目中导出任何符号。当我检查时,我发现CMake构建的项目文件不包含项目的.h文件,所以我添加了它。它包含所需的出口声明。不幸的是,重建仍然不会生成 DLL,在玩了一会儿之后,我发现编译器似乎根本没有注意到 .h 文件;当我在那里写明显语法无效的东西时,它甚至不会破坏构建。

为什么我将.h文件添加到项目后编译器会忽略它,我怎样才能让它正确编译?

【问题讨论】:

  • .h 文件是否包含在与项目一起编译的任何 .c 文件中?

标签: c visual-studio visual-studio-2015


【解决方案1】:

如果 .h 文件包含在它正在构建的翻译单元(.c 文件)中,编译器只会翻译它。添加对它的引用,makefile 本身不会导致 .h 文件被翻译。如果它是 target - 没有规则来构建 .h 文件,因为它没有任何意义。如果是依赖,修改它会导致目标被构建,但如果目标不包含头文件,则不是真正的依赖。

另一种可能是包含了标头,但包含了一些未启用的条件编译。

【讨论】:

  • 呃,对。我应该记得#include 都是内联的。对不起;我太习惯使用真正的模块系统的语言了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
  • 2014-06-15
  • 2017-09-06
  • 1970-01-01
相关资源
最近更新 更多