【问题标题】:error LNK2019: unresolved external symbol - only .h files错误 LNK2019:无法解析的外部符号 - 仅限 .h 文件
【发布时间】:2012-10-18 03:58:51
【问题描述】:

啊...我最近一直在努力使 Visual Studio 2010 (VC++) 包含我想在我的项目中使用的一堆 3rd 方库。这就是问题所在:链接器似乎无法确定我的代码中生成的每个符号都来自第 3 方库定义。我已经在我的包含目录中包含了头文件路径,并且在我的源目录中包含了源路径,但它仍然无法正常工作。我已经用谷歌搜索了一段时间,在大多数情况下,问题是由于链接器的附加依赖项上缺少 .lib 文件的引用引起的,但是库不附带它们。

这是一段示例代码:

#include "stdafx.h"
#include <fuzzylite\FuzzyEngine.h>

int _tmain(int argc, _TCHAR* argv[])
{
    fl::FuzzyEngine eng;
    return 0;
}

这就是 VS 显示的输出

Fuzzycolors.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall fl::FuzzyEngine::~FuzzyEngine(void)" (??1FuzzyEngine@fl@@UAE@XZ) referenced in function _wmain
Fuzzycolors.obj : error LNK2019: unresolved external symbol "public: __thiscall fl::FuzzyEngine::FuzzyEngine(void)" (??0FuzzyEngine@fl@@QAE@XZ) referenced in function _wmain

所以我想知道是否有办法使用我的 3rd 方库的 .h 和 .cpp 文件来构建我的源代码。 谢谢。

菜鸟

【问题讨论】:

    标签: visual-studio-2010 visual-c++ linker-errors lnk2019


    【解决方案1】:

    http://www.fuzzylite.com 上查看新版本的fuzzylite-2.0。这个问题已经解决了。

    Windows 需要将__declspec(dllexport) 添加到类中,这在以前的版本中是不存在的。今天,每节课都以class FL_EXPORT Engine 开头,其中FL_EXPORT 是缺失的定义。

    【讨论】:

    • 原来是老版本的bug?
    猜你喜欢
    • 2020-07-09
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2013-06-15
    • 2015-01-18
    • 1970-01-01
    • 2018-07-05
    相关资源
    最近更新 更多