首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vc下头文件不在当前目录下的调用,该怎么处理

2012-03-08 
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函数是写在头文件里倒也是可以的额

热点排行