C++ 编译一个c++;具有不同头文件名的文件

C++ 编译一个c++;具有不同头文件名的文件,c++,visual-studio-2013,C++,Visual Studio 2013,我正在使用Visual Studio 2013。我有一个带有main函数的文件(file1.cpp)。此主函数使用另一个文件(file2.cpp)中定义的函数。file2.cpp有一个头文件,但名称不同。所以它不是file2.h,而是hdr2.h。当我构建项目时,我得到了一个未解决的外部符号错误,该错误用于main中的函数。头文件在main中定义,但它似乎没有编译file2.cpp中的函数。有人能告诉我怎么解决这个问题吗 谢谢头文件的名称和关联的实现源文件的名称不需要关联。实际上,您可以有一个没

我正在使用Visual Studio 2013。我有一个带有main函数的文件(file1.cpp)。此主函数使用另一个文件(file2.cpp)中定义的函数。file2.cpp有一个头文件,但名称不同。所以它不是file2.h,而是hdr2.h。当我构建项目时,我得到了一个未解决的外部符号错误,该错误用于main中的函数。头文件在main中定义,但它似乎没有编译file2.cpp中的函数。有人能告诉我怎么解决这个问题吗


谢谢

头文件的名称和关联的实现源文件的名称不需要关联。实际上,您可以有一个没有任何关联的实现源文件的头文件,或者一个实现扩展到多个源文件的头文件

未解决的外部符号错误只是告诉您链接器找不到您使用的符号。这意味着您声明了一个符号,但没有定义它。由于您拥有所有代码的源代码,这意味着您尚未将提供定义的已编译对象传递给链接器。解决这个问题的方法是简单地将定义源文件添加到项目中。完成此操作后,VisualStudio将编译这些源文件,并将输出对象传递给链接器

根据您的问题,缺少的符号在
file2.cpp
中定义。只需将该文件添加到VisualStudio项目中



如果将该文件包括在项目中,并且错误仍然存在,则该文件实际上似乎没有定义未解析的符号。

头文件的名称和关联的实现源文件的名称不需要关联。实际上,您可以有一个没有任何关联的实现源文件的头文件,或者一个实现扩展到多个源文件的头文件

未解决的外部符号错误只是告诉您链接器找不到您使用的符号。这意味着您声明了一个符号,但没有定义它。由于您拥有所有代码的源代码,这意味着您尚未将提供定义的已编译对象传递给链接器。解决这个问题的方法是简单地将定义源文件添加到项目中。完成此操作后,VisualStudio将编译这些源文件,并将输出对象传递给链接器

根据您的问题,缺少的符号在
file2.cpp
中定义。只需将该文件添加到VisualStudio项目中



如果您在项目中包含该文件,并且错误仍然存在,那么看起来该文件实际上没有定义未解析的符号。

这肯定不是因为所包含文件的命名不同:p…约定的头名称不需要与cpp文件匹配。问题出在其他地方,我们无法帮助您仅提供您发布的信息。这肯定不是因为所包含文件的名称不同:P…约定的标题名称不需要与cpp文件匹配。问题出在其他地方,我们不能帮助你只发布信息。我在项目中有源文件。我在VisualStudio解决方案资源管理器中创建了一个文件夹,并将其放置在该文件夹中。那么我还需要做些什么吗?不需要。如果源文件已编译且输出已传递给链接器,而链接器找不到定义,则没有定义。将文件放在与项目相同的文件夹树中不会将该文件添加到项目中。您需要将它添加到VisualStudioGUI中的项目中。我刚刚将该文件添加到prj中,没有文件夹,现在可以了。但我还有一个问题;)。文件中有一个定义为extern的变量。该变量在另一个文件中定义为静态。我在prj中有两个文件,但我打赌是一个未解决的外部符号错误。我不担心其他问题。评论中的细节很难把握。我想我回答了你在这里问的问题。我在项目中有源文件。我在VisualStudio解决方案资源管理器中创建了一个文件夹,并将其放置在该文件夹中。那么我还需要做些什么吗?不需要。如果源文件已编译且输出已传递给链接器,而链接器找不到定义,则没有定义。将文件放在与项目相同的文件夹树中不会将该文件添加到项目中。您需要将它添加到VisualStudioGUI中的项目中。我刚刚将该文件添加到prj中,没有文件夹,现在可以了。但我还有一个问题;)。文件中有一个定义为extern的变量。该变量在另一个文件中定义为静态。我在prj中有两个文件,但我打赌是一个未解决的外部符号错误。我不担心其他问题。评论中的细节很难把握。我想我回答了你在这里提出的问题。