我对在MSVS中开发C / C ++代码相当陌生,但是已经让我感到困惑的一件事就是为什么在将一组源文件和头文件添加到我的项目之后,它们分别显示在MSVS文件夹下'源文件'和'头文件',我随后必须告诉编译器我的头文件在'Project-> properties-> C / C ++ - > General'下。在我看来,MSVS应该已经尝试通过首先查看我已包含在项目中的头文件集来解决任何“包含”......“'语句。
有人关心评论这里使用的逻辑吗?
谢谢, 特拉维斯
答案 0 :(得分:3)
IDE使用项目文件来跟踪您的文件,但编译器无权访问该信息。包含文件路径在编译时传递给每个源文件。
答案 1 :(得分:3)
我认为这是因为在目录中有一个标题并不一定意味着您希望该目录搜索任何其他标题。可以通过指定标头的路径来包含该特定标头,也可以隐式找到它,因为它与包含它的文件位于同一目录中。
所有这一切(而且只是猜测),我认为你想要的是一个合理的要求(这是让我有点沮丧的事情) - 至少作为一种选择或被问到。
答案 2 :(得分:2)
实际上,在所谓的“Header Files”文件夹中添加头文件是可选的。即使没有这样做,你也可以在“Project-> Properties-> ....”中指定标题路径,它仍然有用。
您可能只考虑可以添加到“Header Files”文件夹中的项目头文件的角度来看,那个有多个第三方库的大项目怎么样,你绝对不能继续添加每个头文件进入你的文件夹。
因此,为了将所有包含统一在一个配置中,应该选择这种方式。
上面引用的所有内容都只是我的理解。我没有任何证据支持这一点。所以,我事先道歉是错的。请不要用Downvotes轰炸我。 :)
答案 3 :(得分:2)
头文件的查找必须是确定性的。项目中可以有多个具有相同名称的文件。在这种情况下,您希望编译器如何解决这种混乱?
另一件事是,让目录查找头文件是(几乎?)所有编译器的历史特征。
这使您在Visual Studio项目中只使用头文件:能够从Visual Studio轻松打开它们。就是这样!
答案 4 :(得分:1)
首先,您是否创建了一个新的C / C ++项目?如果是这样,它应该在您选择的地方创建一个目录。完成此操作后,您可以右键单击项目(在MSVS的解决方案窗口中)并将新文件添加到项目中。例如,您可以将源文件(.cpp)和头文件(.h)添加到项目中。完成此操作后,您必须在源文件中编写#include“yourfile.h”,以便能够将头文件包含在源文件中。请注意,您可以添加新文件和现有文件。我希望这有帮助!
答案 5 :(得分:0)
我从未见过这个问题。你创建了一个项目并在IDE中将任何相同的项目文件夹头文件添加到你的项目中,你可以通过#include添加头文件并编译你的源代码。 如果所需的头文件不存在于你创建项目的同一文件夹中,你应该在项目属性中添加头目录,如你所说:)