我在同一个解决方案中有两个C ++项目(proj1和proj2)。如何将proj1中的头文件包含到proj2中?我通过设置其他包含目录将这些头文件包含在proj2中,但无法链接这些功能 - 错误:未解析的外部。
答案 0 :(得分:2)
你不需要从porj2的引用中添加proj1,然后编译器会在编译proj2时链接proj1。
答案 1 :(得分:0)
所以你的问题不是实际包含头文件,而是链接到另一个项目的目标文件。
这个问题基本上有两种解决方案:
只需将源文件从其他项目拉入需要它们的项目中。这将导致您为每个项目构建两次源文件。请注意,我并不是说您应该将文件物理复制到磁盘上,只需将源文件拖放到解决方案侧栏中即可。
将公共代码放在第三个项目中,作为库。然后,您的项目都使用此库,并使用链接。
我强烈推荐第二种解决方案。
答案 2 :(得分:0)
当您收到链接错误时,表示您已成功编译代码,这意味着您已正确包含标头。恭喜!但是,您遇到unresolved externals
错误。这是因为你刚刚告诉编译器在哪里找到.h
文件,但实际代码呢?是.cpp
中的那个?
选项:强>
.h
文件中,这可能是一个快速解决方案,但不是一个好主意(除非您需要模板化代码的可移植解决方案)。static library
并链接到输出.lib
文件(您可以通过快速谷歌搜索找到该方法).h
和.cpp
)带到另一个项目并在项目中构建(此处发生了大量冗余)。