vc下头文件不在当前目录下的调用,该怎么处理
vc下头文件不在当前目录下的调用C/C++ code//E:\WorkSpace\we\1.h#ifndef E_1#define E_1void Visit() #e
vc下头文件不在当前目录下的调用
C/C++ code//E:\WorkSpace\we\1.h#ifndef E_1#define E_1void Visit(); #endif////E:\WorkSpace\we\1.cpp#include "1.h"#include <iostream>using namespace std;void Visit(){ cout << "hello!" << endl;}//E:\WorkSpace\we\main.cpp#include <iostream>#include "1.h"using namespace std;int main(){ Visit(); return 0;}
结果成功输出。但是在其他目录下怎么不行啊?
C/C++ code//E:\WorkSpace\1.cpp#include <iostream>#include "E:\WorkSpace\we\1.h"using namespace std;int main(){ Visit(); return 0;}
报错:1.obj : error LNK2001: unresolved external symbol "void __cdecl Visit(void)" (?Visit@@YAXXZ)
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
[解决办法]#include ".\we\1.h"//试试
[解决办法]把头问件所在目录加到include搜索路劲里
[解决办法]1.obj : error LNK2001: unresolved external symbol "void __cdecl Visit(void)" (?Visit@@YAXXZ)
Debug/1.exe : fatal error LNK1120: 1 unresolved externals
这个是连接错误。你的1.cpp编译了没?编译出的.obj在不在linker搜索路径里
[解决办法]需要改为
#include "E:\\WorkSpace\\we\\1.h"
或
#include "E:/WorkSpace/we/1.h"
?试试看。不保证对。
[解决办法]rebuild一下
[解决办法]先clean,再rebuild
顺便路径改为
#include "./we/1.h"//试试
[解决办法]需要加入 Visit() 所在的 .cpp 文件。
[解决办法]如果你想不要cpp文件的话,你应该做成一个库文件,这样才能调用,要不程序怎么能知道你的函数是怎么实现的?
[解决办法]1.cpp不在工程目录下,没有被编译。
[解决办法]这个不是找不到头文件,而是函数体VISIT所在的对应的CPP文件找不到,CPP文件需要放在同一个工程目录下。
除非VISIT函数是写在头文件里倒也是可以的额