首页 > 解决方案 > 如何在 Visual Studio 中包含头文件和源文件文件夹

问题描述

我正在使用 Visual Studio (2017),我需要以下内容。

我有一个文件夹,代码生成器放置从正式模型获得的 .h 和 .c 文件。这个文件夹不是我控制的,例如我不能在里面写,但是它是由另一个团队成员更新的。

通过使用 /I 编译器选项(或项目属性中的附加包含目录),我设法在我的 VS 项目中导入了所有生成的头文件。我要做的是把这个生成的代码集成到一个特定的平台上,这意味着我必须在目标平台上编译生成的代码和集成代码。问题是,编译器无法解析生成代码的生成函数定义,因为它只能看到 .h 文件。我得到的是链接错误(外部符号未解析)

为了解决这个问题,我手动一个一个地添加了现有的 .c 文件。此解决方案带来的明显问题是

问题是:是否可以设置一个选项以指定源文件的路径而无需一一传递?

注意:仅将生成的代码复制并粘贴到 VS 项目文件夹中是不可接受的解决方案。

谢谢

标签: cvisual-studio

解决方案


如果您查看https://docs.microsoft.com/en-us/cpp/ide/working-with-project-properties?view=vs-2017那么您会看到有一个默认Source Directories属性,但是(我$(VC_SourcePath)认为),您可以添加其他路径。文档不清楚这是否意味着将包含此类路径中的所有源文件进行编译。

在文档的底部,它解释了如何通过提供外部属性文件来覆盖某些项目属性。看来您可以使用这样的文件覆盖目标/源。您可以使用一个小工具生成文件,该工具读取这些目录中的文件名并将它们添加到文件中。

您还可以分析该.vcproj文件并构建一个小工具,该工具将使用您生成的源目录重写该部分,读取这些目录中的文件名并将它们添加到.vcproj文件中的部分。


推荐阅读