骑乐在途 2014-01-21 15:37 采纳率: 0%
浏览 1962

Skia的连接错误,无法解析的外部符号(LNK2019: unresolved external symbol)

我在下载了Google的2D图形引擎后,编译了源码,把生成的静态库(lib)文件都放到了自己的工程目录下,并在自己工程的源文件中定义了一个SKBitmap map;的一个对象。在连接时却出现了3个连接错误。
1>TestSkiaDlg.obj : error LNK2019: unresolved external symbol "public: __thiscall SkBitmap::~SkBitmap(void)" (??1SkBitmap@@QAE@XZ) referenced in function "protected: void __thiscall CTestSkiaDlg::DrawSkia(void)" (?DrawSkia@CTestSkiaDlg@@IAEXXZ)
1>TestSkiaDlg.obj : error LNK2019: unresolved external symbol "public: __thiscall SkBitmap::SkBitmap(void)" (??0SkBitmap@@QAE@XZ) referenced in function "protected: void __thiscall CTestSkiaDlg::DrawSkia(void)" (?DrawSkia@CTestSkiaDlg@@IAEXXZ)
1>H:\Local\Visual Studio 2012\Projects\TestSkia\Debug\TestSkia.exe : fatal error LNK1120: 2 unresolved externals

最开始我以为是编译的命名改编的问题,但是我是用同一个编译器编译的库文件和自己建立的工程。我也通过dumpbin工具查看了skia_core.lib库导出的符号。发现两个符号是完全相同的啊!
下面是dumpbin导出的片段:
074 00000000 SECT1C notype External | __real@00000000
075 00000000 UNDEF notype () External | ??0SkBitmap@@QAE@XZ (public: __thiscall SkBitmap::SkBitmap(void))
076 00000000 SECT1D notype Static | .rdata

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-02-26 18:03
    关注

    该回答引用ChatGPT

    这个错误通常发生在链接器无法找到所需的函数或变量定义时。在你的情况下,编译器无法找到SkBitmap类的构造函数和析构函数的定义。


    有几种可能的原因导致这个问题:

    • 没有正确地链接所需的库文件。请确保你已经在自己的工程中添加了正确的库文件,包括Skia所需的所有库文件,并在链接选项中添加了这些库文件。
    • 你的库文件版本不兼容。请确保你使用的Skia库文件与你的代码相匹配,不要混淆不同版本的库文件。
    • 编译器没有正确地找到库文件。请确保你在自己的工程中设置了正确的库文件搜索路径。
    • 你的代码中存在错误。请确保你正确地使用SkBitmap类,并且在调用其构造函数和析构函数之前已经包含了必要的头文件。

    为了解决这个问题,你可以尝试以下几个步骤:

    • 确认你已经正确地链接了Skia库文件,并在链接选项中添加了这些库文件。
    • 检查Skia库文件的版本,并确保它与你的代码相匹配。
    • 确认你已经在自己的工程中设置了正确的库文件搜索路径。
    • 确认你正确地使用了SkBitmap类,并且在调用其构造函数和析构函数之前已经包含了必要的头文件。
    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services