Visual Studio 2012, C/ c++代码,错误LNK2001:无法解析的外部符号

Visual Studio 2012, C/C++ code, error LNK2001: unresolved external symbol

本文关键字:符号 外部 错误 2012 Studio c++ Visual 代码 LNK2001      更新时间:2023-10-16

当我尝试编译以下代码时,尽管我已经配置了编译器的附加包含目录和链接器的附加库目录,但我得到了错误LNK2001。

#include "stdafx.h"
#include <QCamApi.h>
int _tmain(int argc, _TCHAR* argv[])
{

    QCam_Err            errcode = qerrSuccess ; 
    errcode = QCam_LoadDriver();

    if(errcode == qerrSuccess){QCam_ReleaseDriver();}
    return 0;
}

我也有一个使用相同编译器/链接器设置的例子

#include <stdio.h>
#include <stdlib.h>
#include <QCamApi.h>
//===== Main ==============================================================
int main(int argc, char* argv[])
{

    QCam_Err            errcode = qerrSuccess ;
    errcode = QCam_LoadDriver();
    if(errcode == qerrSuccess) {QCam_ReleaseDriver();}
    return 0;
}

然而不知何故,我似乎无法从头开始。为什么它不工作,如果我开始一个空的项目,只是粘贴这段代码在.cpp?抱歉,如果这是一个微不足道的问题,非常感谢你的时间!

您在工作示例中单独使用main,但在另一个示例中使用_tmain似乎意味着您的项目设置不同-特别是我怀疑一个项目设置为多字节字符,另一个设置为unicode。

我认为这是导致你的链接问题。

这里有一个更完整的讨论

要从c++中链接C编写的外部函数,它们应该声明为extern "C"

你应该在QCamApi.h调用函数的每个声明中添加extern "C"关键字,或者尝试用纯C而不是c++编译你的代码。

相关文章: