如何在同一个解决方案中包含其他项目的头文件?

时间:2015-12-30 08:14:07

标签: c++ visual-studio

我在同一个解决方案中有两个C ++项目(proj1和proj2)。如何将proj1中的头文件包含到proj2中?我通过设置其他包含目录将这些头文件包含在proj2中,但无法链接这些功能 - 错误:未解析的外部

3 个答案:

答案 0 :(得分:2)

你不需要从porj2的引用中添加proj1,然后编译器会在编译proj2时链接proj1。

答案 1 :(得分:0)

所以你的问题不是实际包含头文件,而是链接到另一个项目的目标文件。

这个问题基本上有两种解决方案:

  1. 只需将源文件从其他项目拉入需要它们的项目中。这将导致您为每个项目构建两次源文件。请注意,我并不是说您应该将文件物理复制到磁盘上,只需将源文件拖放到解决方案侧栏中即可。

  2. 将公共代码放在第三个​​项目中,作为库。然后,您的项目都使用此库,并使用链接

  3. 我强烈推荐第二种解决方案。

答案 2 :(得分:0)

当您收到链接错误时,表示您已成功编译代码,这意味着您已正确包含标头。恭喜!但是,您遇到unresolved externals错误。这是因为你刚刚告诉编译器在哪里找到.h文件,但实际代码呢?是.cpp中的那个?

选项:

  1. 将所有代码放在.h文件中,这可能是一个快速解决方案,但不是一个好主意(除非您需要模板化代码的可移植解决方案)。
  2. 将您的第一个项目构建为static library并链接到输出.lib文件(您可以通过快速谷歌搜索找到该方法)
  3. 将您的来源(.h.cpp)带到另一个项目并在项目中构建(此处发生了大量冗余)。