繁体   English   中英

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

[英]How to include header files of another projects in the same solution?

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

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

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

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

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

  2. 将公共代码放在第三个项目中,作为库。 然后你的两个项目都使用这个库,并与它链接

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

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

选项:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM