头发继续乱 2023-03-25 20:36 采纳率: 52.9%
浏览 61
已结题

htmclxx 求提供给64位windows预编译库


main.cpp.obj : error LNK2019: 无法解析的外部符号 "public: class tree<class htmlcxx::HTML::Node,class std::allocator<class tree_node_<class htmlcxx::HTML::Node> > > const & __cdecl htmlcxx::HTML::ParserDom::parseTree(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?parseTree@ParserDom@HTML@htmlcxx@@QEAAAEBV?$tree@VNode@HTML@htmlcxx@@V?$allocator@V?$tree_node_@VNode@HTML@htmlcxx@@@@@std@@@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z),函数 main 中引用了该符号
main.cpp.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl htmlcxx::HTML::ParserDom::beginParsing(void)" (?beginParsing@ParserDom@HTML@htmlcxx@@MEAAXXZ)
main.cpp.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl htmlcxx::HTML::ParserDom::foundTag(class htmlcxx::HTML::Node,bool)" (?foundTag@ParserDom@HTML@htmlcxx@@MEAAXVNode@23@_N@Z)
main.cpp.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl htmlcxx::HTML::ParserDom::foundText(class htmlcxx::HTML::Node)" (?foundText@ParserDom@HTML@htmlcxx@@MEAAXVNode@23@@Z)
main.cpp.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl htmlcxx::HTML::ParserDom::foundComment(class htmlcxx::HTML::Node)" (?foundComment@ParserDom@HTML@htmlcxx@@MEAAXVNode@23@@Z)
main.cpp.obj : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl htmlcxx::HTML::ParserDom::endParsing(void)" (?endParsing@ParserDom@HTML@htmlcxx@@MEAAXXZ)
main.cpp.obj : error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl htmlcxx::HTML::operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class tree<class htmlcxx::HTML::Node,class std::allocator<class tree_node_<class htmlcxx::HTML::Node> > > const &)" (??6HTML@htmlcxx@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV23@AEBV?$tree@VNode@HTML@htmlcxx@@V?$allocator@V?$tree_node_@VNode@HTML@htmlcxx@@@@@std@@@@@Z),函数 main 中引用了该符号
D:\testHTML\firset\third_party\htmlcxx\lib\htmlcxx.lib : warning LNK4272:库计算机类型“x86”与目标计算机类型“x64”冲突
firset.exe : fatal error LNK1120: 7 个无法解析的外部命令
ninja: build stopped: subcommand failed.
20:34:43: 进程"D:\qt\Tools\CMake_64\bin\cmake.exe"退出,退出代码 1
  • 写回答

4条回答 默认 最新

  • OKX安生 2023-03-25 21:19
    关注
    该回答引用于gpt与OKX安生共同编写:
    
    • 该回答引用于gpt与OKX安生共同编写:

    你提到的错误信息中包含了以下内容:

    • LNK2019 错误:找不到符号。
    • LNK2001 错误:找不到外部符号。
    • LNK1120 错误:无法解析的外部命令。

    这些错误都是链接器(linker)在生成可执行文件时遇到的问题。其中,LNK2019 和 LNK2001 错误表示链接器无法找到某些函数或变量的定义;LNK1120 错误则表示存在未解决的符号引用。

    根据你提供的错误信息,可以看出该程序使用了 htmlcxx 库,并且链接器无法找到该库的相关符号。根据警告信息提示,可能是因为你使用了 64 位系统,而预编译库却是 32 位的。因此,你需要下载适合 64 位系统的 htmlcxx 库,并在项目中正确配置库文件的路径和链接选项。

    你可以尝试下载并使用以下预编译版本的 htmlcxx 库(已针对 64 位系统进行编译):

    解压后,将 libhtmlcxx.a 或 libhtmlcxx.lib 文件复制到你的项目目录下(例如,放在 third_party\htmlcxx\lib 目录下),并在 CMakeLists.txt 中添加以下代码,以链接 htmlcxx 库:

    # 设置 htmlcxx 库的路径
    set(HTMLCXX_LIB_PATH "${CMAKE_SOURCE_DIR}/third_party/htmlcxx/lib")
    
    # 设置链接选项
    if (WIN32)
        set(HTMLCXX_LINK_OPTIONS "-llibhtmlcxx")
    else ()
        set(HTMLCXX_LINK_OPTIONS "-lhtmlcxx")
    endif ()
    
    # 添加可执行文件
    add_executable(firset main.cpp)
    
    # 链接 htmlcxx 库
    target_link_libraries(firset ${HTMLCXX_LINK_OPTIONS} ${HTMLCXX_LIB_PATH})
    

    这里假设 libhtmlcxx.a 或 libhtmlcxx.lib 文件被放置在了 third_party\htmlcxx\lib 目录下,并且库文件的名字为 libhtmlcxx。如果你的库文件名称不同,需要相应地修改链接选项。

    希望这些信息能够帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月31日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗