连接错误error LNK2019,请大侠指正

ohxf1234 2012-06-10 03:10:18
使用VS2010建的空项目,然后编写主函数和调用函数
主函数:
#include <iostream>
#include "../../global/descriptor.h"

int main()
{
std::cout << codeinfo(2) << std::endl;
system("pause");
return 0;
}// 主函数完成;

调用函数头文件;
descriptor.h
extern const char * const codeinfo(int info_code);

调用函数CPP
const char * const codeinfo(int info_code)
{
return (*addr[type])[code];
}
编译成功,连接失败,提示如下:
1>main.obj : error LNK2019: unresolved external symbol "char const * __cdecl codeinfo(int)" (?codeinfo@@YAQBDH@Z) referenced in function _main
1>H:\my_program_life\HUXUEFENG\MAIN\Debug\test_string_capacity.exe : fatal error LNK1120: 1 unresolved externals
其中main.cpp和descriptor.h及descriptor.cpp不在同一目录
目录树如下:

_use_case
| |___test
| |__main.cpp
|
|_global
|___descriptor.h
|___descriptor.cpp

其中use_case和global属于同级目录
test是use_case下的子目录,其中包含main.cpp主函数
global没有子目录,直接包含descriptor.h和descriptor.cpp
小弟无解,请大侠指正;万分感激;
...全文
141 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ohxf1234 2012-06-11
  • 打赏
  • 举报
回复
今天找到原因了,代码是写在一个工程中的,现在要把公共代码剥离出来,
没有将剥离出来的公共代码添加到新的工程中,导致编译成功,连接失败。
感谢给我帮助的4为网友,
感谢公司同事黄师兄的帮助。感谢。
也感谢自己恍然大悟
Binzo 2012-06-11
  • 打赏
  • 举报
回复
project -> properties -> reference -> 添加参考目录。
gabriel1017 2012-06-11
  • 打赏
  • 举报
回复
按我说的步骤一步一步来:

1,先在你的源代码里用ide的功能跟进第二行的那个#include 看看ide能不能帮你识别到,
识别到说明没问题,继续第二步,
如果识别不到,请调整头文件,直至你能跟进去.
(具体怎么改请好好温习C++的头文件工程设置内容,百度谷歌)

2,到你的工程路径中添加-l项(字母l,也就是你所调用的第三方库dll的link选项).

编译通过的话可以推断你的第一步应该没问题,应该是第二步出错了.检查下吧.vs我不熟,你查查它怎么设置link选项吧.
ohxf1234 2012-06-11
  • 打赏
  • 举报
回复
感谢楼上的各位朋友的回复
二楼的朋友说多了一级,去掉"../",提示"Cannot open include file: '../global/descriptor.h': No such file or directory"
三楼的朋友和我刚开始的做法一样的,所有代码全部放在一个目录下,编译连接成功。但是代码维护困难,"在不同文件下分块实现函数功能时出现了问题?",不吝赐教。
四楼的朋友,感觉像是makefile,在工程中,使用-I的却可以做到。我也说了,编译通过,表明了路径是没有问题的。同时,在.h文件中没有使用到第三方库,就是一个函数声明和一些常量定义,.cpp文件中也是只有一个函数定义,其余全是数组的定义。应该不存在第三方库的说法。

谢谢朋友的回复。
sine882010 2012-06-11
  • 打赏
  • 举报
回复
unresolved external symbol 错误,一般是主函数在调用功能函数的时候,可以找到函数的声明,但是找不到函数的实现,这就表现出来,可以编译通过,但是链接会失败。你可以试着把所以的函数都放在主函数文件中,看是否运行成功,如果成功则说明可能是你在不同文件下分块实现函数功能时出现了问题。
qq120848369 2012-06-10
  • 打赏
  • 举报
回复
#include "../global/descriptor.h"

多了一级吧。
ohxf1234 2012-06-10
  • 打赏
  • 举报
回复
自己等一个,希望大侠出手相救

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧