碰到“error LNK2019: 无法解析的外部符号”
2007-03-08 09:43
531 查看
有一个解决方案,有两个工程A,B。工程B中定义了一个类,在工程A的demo.cpp中引用该类,但是如果是
#include "XX,h",则会出现“error LNK2019: 无法解析的外部符号”
如果是#include "XX.cpp",则可以顺利编译通过。
想来是因为引用 .h 文件导致找不到.cpp中的定义,而引用.cpp可以通过.cpp找到.h(.cpp有对.h的include)
但是如果同在工程B下面,则#include "XX,h"也是正确的,它会自动关联到同名的(反正是对应的).cpp文件。
在不同工程中应该如何引用呢?
看见一种原因分析,如下:
现场情况:
funcname 在文件file.cpp/h中定义实现
void funcname(void) {;}
filecall.c文件内呼叫funcname()函数。
出现上面情况。
症因:因c/c++混合编程, c文件内函数无法呼叫c++文件内函数。
解决,或者将c文件名改为.cpp,或者将c++文件名改为.c
上面的解决采用将 file.cpp 更名为file.c即可。
#include "XX,h",则会出现“error LNK2019: 无法解析的外部符号”
如果是#include "XX.cpp",则可以顺利编译通过。
想来是因为引用 .h 文件导致找不到.cpp中的定义,而引用.cpp可以通过.cpp找到.h(.cpp有对.h的include)
但是如果同在工程B下面,则#include "XX,h"也是正确的,它会自动关联到同名的(反正是对应的).cpp文件。
在不同工程中应该如何引用呢?
看见一种原因分析,如下:
现场情况:
funcname 在文件file.cpp/h中定义实现
void funcname(void) {;}
filecall.c文件内呼叫funcname()函数。
出现上面情况。
症因:因c/c++混合编程, c文件内函数无法呼叫c++文件内函数。
解决,或者将c文件名改为.cpp,或者将c++文件名改为.c
上面的解决采用将 file.cpp 更名为file.c即可。
相关文章推荐
- 碰到“error LNK2019: 无法解析的外部符号”
- 碰到“error LNK2019: 无法解析的外部符号”
- error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
- error LNK2019: 无法解析的外部符号
- VC编译错误:error LNK2019: 无法解析的外部符号 "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z),该符号在函数 "void __cdecl _com_ut
- LIBCMTD.lib(wincrt0.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用
- error LNK2019: 无法解析的外部符号 该符号在函数 中
- 使用SDL2_mixer遇到error LNK2019: 无法解析的外部符号
- VS2015下解决:error LNK2019: 无法解析的外部符号 __iob_func
- error LNK2019: 无法解析的外部符号 __imp___iob_func,该符号在函数 amqp_abort 中被引用,无法解析的外部符号 __imp_vfprintf
- error LNK2019: 无法解析的外部符号 _SQLConnect@28,该符号在函数
- 有关C++模板(template)的编译错误“error LNK2019: 无法解析的外部符号”的分析
- main.obj:-1: error: LNK2019: 无法解析的外部符号 "public: __thiscall CFindFileForm::CFindFileForm(class QWidge
- MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStart
- 错误 error LNK2019: 无法解析的外部符号 "void __cdecl ........的解决
- odbccp32.lib(dllload.obj) : error LNK2019: 无法解析的外部符号 __imp___vsnprintf
- MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC(2012-04-22 16:20:02
- 错误 1 error LNK2019: 无法解析的外部符号 "public: __thiscall chain<int>::~chain<int>(void)" (??1?$chain@H@@QAE@
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...
- MS 4000 VCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC