【发布时间】:2013-09-03 12:28:21
【问题描述】:
我正在使用这个库 http://rtmpdump.mplayerhq.hu/librtmp.3.html 是用 C 语言编写的。 它已经在其所有定义中使用了 extern "C"。但是当我从我的 [main.cpp] 文件中调用一个函数时,编译器仍然显示这些错误:
[1>main.obj : error LNK2028: unresolved token (0A00000F) "extern "C" struct RTMP *
__cdecl RTMP_Alloc(void)" (?RTMP_Alloc@@$$J0YAPAURTMP@@XZ) referenced in function "int
__cdecl main(void)" (?main@@$$HYAHXZ)]
[1>main.obj : error LNK2019: unresolved external symbol "extern "C" struct RTMP *
__cdecl RTMP_Alloc(void)" (?RTMP_Alloc@@$$J0YAPAURTMP@@XZ) referenced in function "int
__cdecl main(void)" (?main@@$$HYAHXZ)]
我使用的是 Visual Studio 2008。并且没有编译错误。 我错过了什么?
【问题讨论】:
-
这个错误之前的编译行是什么? (IOW,我很确定您没有包含包含此功能的库/目标文件)
-
没有编译错误,因为它是抱怨的链接器。你真的链接到图书馆吗?
-
你是否正确地告诉你的编译器链接到 librtmp 库?它必须类似于编译器命令行调用上的 -lrtmp。
-
如果一切都如您所说,那么问题是您的构建设置不正确。很可能您没有告诉链接器与库链接。
-
你需要自己添加库文件名(我认为是链接器/输入到不同的地方)
标签: c++ c visual-studio-2008 linker-errors