`
zerosoul
  • 浏览: 25769 次
  • 性别: Icon_minigender_1
  • 来自: Earth
社区版块
存档分类
最新评论

Error LNK2019:Unresolved External Symbol *** Referenced In 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所出现的问题。

 

 

 

分享到:
评论

相关推荐

    comsupp.lib源码

    当用evc编写atl客户端程序时,会有 error LNK2019: unresolved external symbol "void __cdecl _com_issue_error(long)" (?_com_issue_error@@YAXJ@Z) referenced in function "public: __thiscall _variant_t::_...

    OpenGL程序用的库文件.dll .h .lib文件

    有具体的help说明,并有vs2005/vs2008/vs2010添加.lib文件的方法以及vc2005出错解决方法error LNK2019: unresolved external symbol __imp____glutInitWithExit@12 referenced in function _glutInit_ATEXIT_HACK@8

    一个具有对象计数功能的基类

    Printer.obj : error LNK2019: unresolved external symbol "protected: __thiscall Counted<class Printer>::Counted(void)" ([email=??0?$Counted@VPrinter@@@@IAE@XZ]??0?$Counted@VPrinter@@@@IAE@XZ[/email]) ...

    SQLite编译

    另一个常见错误是`date.obj:error LNK2019: unresolved external symbol localtime_s referenced in function osLocaltime`,解决办法是将`date.c`文件中的`localtime_s`替换成`_localtime64_s`。 #### 四、总结 ...

    Qt for WinCE 开发环境搭建

    - **问题描述**:当尝试使用Qt 4.7.4版本编译WinCE版本时,出现了链接错误`error LNK2019: unresolved external symbol gmtime referenced in function png_convert_from_time_t`。 - **解决方案**:根据Qt官方bug...

    win764位系统下VC++2010中设置FFTW时遇到的若干问题及解决办法

    error LNK2019: unresolved external symbol _fftw_plan_dft_1d@16 referenced in function _main ``` **解决办法:** 1. **确保已正确安装FFTW库** - 下载FFTW库对应的32位或64位版本(根据您的系统选择)。 - ...

    Visual Studio 2008配置DDK驱动开发环境

    - **问题:** 编译过程中遇到链接错误,例如 `BufferOverflowK.lib(gs_support.obj):error LNK2019: unresolved external symbol _DriverEntry@8 referenced in function _GsDriverEntry@8`。 - **解决方法:** 在源...

    Windows7下TA-Lib包的安装

    common.obj : error LNK2019: unresolved external symbol TA_Initialize referenced in function __pyx_pf_5talib_6common_2_ta_initialize 这个问题有点高级,看起来说是链接错误,很多人到这就不知道怎么办了,...

    【原创】新版发布 nge2 PSP新版类库

    libjpeg.lib(jerror.obj) : error LNK2019: unresolved external symbol __iob referenced in function _output_message //该错误主要是由于静态库在VC6编译而主程序在VC2005编译,大家用的CRT不同。解决办法,代码...

Global site tag (gtag.js) - Google Analytics