假设我在名为one.cpp的文件中使用了名为DoThis(const char * abc)的函数。所以当我尝试从另一个源文件(two.cpp)中的另一个函数调用此函数时,我得到错误:错误LNK2001:未解析的外部符号(C ++),即使我使用#include“one.h”会是什么我这样做是为了解决这个问题吗?
答案 0 :(得分:14)
这意味着您的程序中不存在您的函数定义。您忘了将one.cpp
添加到您的计划中。
在这种情况下,“添加”意味着取决于您的构建环境及其术语。在MSVC中(因为您显然使用的是MSVC),您必须将one.cpp
添加到项目中。
更实际的是,适用于所有典型的构建方法,当您链接程序时,one.cpp
创建的目标文件将丢失。
答案 1 :(得分:3)
听起来像是在使用Microsoft Visual C ++。如果是这种情况,那么最有可能的是你不用one.cpp编译你的two.cpp(one.cpp是one.h的实现)。
如果您来自命令行(cmd.exe),请先尝试此操作: cl -o two.exe one.cpp two.cpp
如果您来自IDE,请右键单击Solution Explore中的项目名称。然后选择添加, 现有项目....将one.cpp添加到项目中。