Error LNK2019:Unresolved External Symbol *** Referenced In Function ***的解决方案_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > Error LNK2019:Unresolved External Symbol *** Referenced In Function ***的解决方案

Error LNK2019:Unresolved External Symbol *** Referenced In Function ***的解决方案

 2013/8/28 20:55:38  zerosoul  程序员俱乐部  我要评论(0)
  • 摘要:转载自:http://www.cnblogs.com/tekson/archive/2009/06/17/1505196.html当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进行定义,则会出现为“解决的外部符号”(unresolvedexternalsymbol)错误。另外,当一个函数调用了外部的一个库文件中的函数,但是在当前project的properties中并没有将所依赖的(dependent)库文件包含进来时,也会出现这种错误。综上
  • 标签:解决方案 解决 function

转载自:http://www.cnblogs.com/tekson/archive/2009/06/17/1505196.html

?

?当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进行定义,则会出现为“解决的外部符号”(unresolved external symbol )错误。另外,当一个函数调用了外部的一个库文件中的函数,但是在当前project的properties中并没有将所依赖的(dependent)库文件包含进来时,也会出现这种错误。

??????综上,当一个solution在linking时找不到所涉及到的函数的定义时就会出现“unresolved external symbol ”错误。

??????例如,下面是调用MIL的库文件mil.lib中的函数时,由于没有将mil.lib包含进来而导致的链接错误。

1>Linking...
1>MDispSelect.obj : error LNK2019: unresolved external symbol?_MappFree@4?referenced in function _main
1>MDispSelect.obj : error LNK2019: unresolved external symbol?_MsysFree@4?referenced in function _main
1>MDispSelect.obj : error LNK2019: unresolved external symbol?_MdispFree@4?referenced in function _main

??????【解决方案】

??????1. Project -> ** Properties... -> Configuration Properties -> Linker -> Input -> Additional Dependencies -> mil.lib

另外,在此之前,还需添加MIL库的相应目录:Tools -> Options -> Projects and Solutions -> VC++ Directories -> Show Directories for -> 在Include files中添加C:\Program Files\Matrox Imaging\Mil\Include? 以及? Tools -> Options -> Projects and Solutions -> VC++ Directories -> Show Directories for -> 在Library files中添加C:\Program Files\Matrox Imaging\Mil\LIB。添加目录的目的是为了使VC在调用相应库文件时不必总是使用绝对地址,VC可以通过文件名在所包含的目录中进行搜索。这样,前面的mil.lib就不必使用绝对地址了。

??????【缺点】可移植性差,如果将原工程中的源文件和头文件中的内容copy下来重新建立该工程时(例如:在电子书或网络上找到的程序),仍需自己在工程中添加目录及所需的库文件。

??????2. 在程序前加入#pragma comment(lib, "mil.lib")也可以达到相同的效果。

??????【优点】避免了方案1所出现的问题。

?

?

?

发表评论
用户名: 匿名