news 2026/7/20 11:35:34

学习slam14讲,在wsl里配置Pangolin遇到tiff包链接不上的问题 并解决

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习slam14讲,在wsl里配置Pangolin遇到tiff包链接不上的问题 并解决

打开文件 Pangolin/components/pango_image/CMakeLists.txt

这是原来的文件

get_filename_component(COMPONENT ${CMAKE_CURRENT_LIST_DIR} NAME) find_package(Eigen3 REQUIRED NO_MODULE) target_compile_definitions(${COMPONENT} PUBLIC HAVE_EIGEN) option(BUILD_PANGOLIN_LIBPNG "Build support for libpng image input" ON) if(BUILD_PANGOLIN_LIBPNG) find_package(PNG QUIET) if(PNG_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_PNG) target_include_directories(${COMPONENT} PRIVATE ${PNG_INCLUDE_DIR} ) target_link_libraries(${COMPONENT} PRIVATE ${PNG_LIBRARY} ${ZLIB_LIBRARY}) message(STATUS "libpng Found and Enabled") endif() endif() option(BUILD_PANGOLIN_LIBJPEG "Build support for libjpeg image input" ON) if(BUILD_PANGOLIN_LIBJPEG) find_package(JPEG QUIET) if(JPEG_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_JPEG) target_include_directories(${COMPONENT} PRIVATE ${JPEG_INCLUDE_DIR} ) target_link_libraries(${COMPONENT} PRIVATE ${JPEG_LIBRARY}) message(STATUS "libjpeg Found and Enabled") endif() endif() option(BUILD_PANGOLIN_LIBTIFF "Build support for libtiff image input" ON) if(BUILD_PANGOLIN_LIBTIFF) find_package(TIFF QUIET) if(TIFF_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_LIBTIFF) target_link_libraries(${COMPONENT} PRIVATE TIFF::TIFF) message(STATUS "libtiff Found and Enabled") endif() endif() option(BUILD_PANGOLIN_LIBOPENEXR "Build support for libopenexr image input" ON) if(BUILD_PANGOLIN_LIBOPENEXR) find_package(OpenEXR 3 QUIET) if(OpenEXR_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_OPENEXR) target_link_libraries(${COMPONENT} PRIVATE OpenEXR::OpenEXR) target_compile_options(${COMPONENT} PRIVATE $<$<OR:$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>: -Wno-deprecated-register -Wno-deprecated> ) # https://github.com/stevenlovegrove/Pangolin/issues/677 set_target_properties(${COMPONENT} PROPERTIES CXX_STANDARD 11) message(STATUS "libopenexr Found and Enabled") endif() endif() option(BUILD_PANGOLIN_LZ4 "Build support for liblz4 compression" ON) if(BUILD_PANGOLIN_LZ4) find_package(Lz4 QUIET) if(Lz4_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_LZ4) target_include_directories(${COMPONENT} PRIVATE ${Lz4_INCLUDE_DIRS} ) target_link_libraries(${COMPONENT} PRIVATE ${Lz4_LIBRARIES}) message(STATUS "liblz4 Found and Enabled") endif() endif() option(BUILD_PANGOLIN_ZSTD "Build support for libzstd compression" ON) if(BUILD_PANGOLIN_ZSTD) find_package(zstd QUIET) if(zstd_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_ZSTD) target_include_directories(${COMPONENT} PRIVATE ${zstd_INCLUDE_DIR} ) target_link_libraries(${COMPONENT} PRIVATE ${zstd_LIBRARY}) message(STATUS "libzstd Found and Enabled") endif() endif() option(BUILD_PANGOLIN_LIBRAW "Build support for raw images (libraw)" ON) if(BUILD_PANGOLIN_LIBRAW) find_package(libraw QUIET) if(libraw_FOUND) target_compile_definitions(${COMPONENT} PRIVATE HAVE_LIBRAW) target_include_directories(${COMPONENT} PRIVATE ${libraw_INCLUDE_DIR} ) target_link_libraries(${COMPONENT} PRIVATE ${libraw_LIBRARIES}) message(STATUS "libraw Found and Enabled") endif() endif() target_sources( ${COMPONENT} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/src/pixel_format.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_exr.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_jpg.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_lz4.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_packed12bit.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_pango.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_png.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_ppm.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_raw.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_tga.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_bmp.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_zstd.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_libraw.cpp ${CMAKE_CURRENT_LIST_DIR}/src/image_io_tiff.cpp ) set_target_properties( ${COMPONENT} PROPERTIES VERSION ${PANGOLIN_VERSION} SOVERSION ${PANGOLIN_VERSION_MAJOR} ) target_link_libraries(${COMPONENT} PUBLIC pango_core Eigen3::Eigen) target_include_directories(${COMPONENT} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> $<INSTALL_INTERFACE:include> ) install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include" DESTINATION ${CMAKE_INSTALL_PREFIX} )

因为这个文件专门负责pango_image组件的构建,pango_image是一个处理图像加载/保存的库,它需要 TIFF、JPEG、PNG 等库来支持各种格式。当这些库没有正确链接时,就会报 undefined reference。 所以我门只需要强制链接tiff就可以 下面是修改后的代码段

target_link_libraries(${COMPONENT} PUBLIC pango_core Eigen3::Eigen tiff)

然后再再终端运行

rm -rf build mkdir build && cd build cmake .. make -j$(nproc)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 11:34:30

3步完整指南:macOS百度网盘加速插件,让下载速度提升70倍

3步完整指南&#xff1a;macOS百度网盘加速插件&#xff0c;让下载速度提升70倍 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘在macOS…

作者头像 李华
网站建设 2026/7/20 11:34:03

Claude Code AI编程助手:从打印机任务看智能代码生成与工作流优化

最近在开发者社区看到不少关于 Claude Code 的热议&#xff0c;特别是有人用它来设置打印机任务&#xff0c;这让我想起了一个更本质的问题&#xff1a;我们到底需要什么样的 AI 编程助手&#xff1f;很多人第一次接触 Claude Code 时&#xff0c;会把它当成一个“更聪明的代码…

作者头像 李华
网站建设 2026/7/20 11:33:58

如何将现有iOS应用迁移到Tempura架构:分步迁移指南

如何将现有iOS应用迁移到Tempura架构&#xff1a;分步迁移指南 【免费下载链接】tempura-swift A holistic approach to iOS development, inspired by Redux and MVVM 项目地址: https://gitcode.com/gh_mirrors/te/tempura-swift 想要为你的iOS应用引入更清晰、更可维…

作者头像 李华
网站建设 2026/7/20 11:33:02

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷三)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题&#xff08;算法应用主题赛C初中组&#xff1a;带解析&#xff09;&#xff08;7月4日试卷三&#xff09;【文末附答案和解析】 单选题 第1题 藏族唐卡是藏传佛教的重要艺术形式&#xff0c;调色师需要比较两种颜料的色差。色差用绝对值…

作者头像 李华
网站建设 2026/7/20 11:32:08

鸿蒙Flutter 弹性系数详解:flex属性用法

作者&#xff1a;高红帆&#xff08;Math_teacher_fan&#xff09; 仓库地址&#xff1a;https://gitcode.com/feng8403000/FlutterfromBeginnertoAdvancedForHarmonyOS.git 联系邮箱&#xff1a;372699828qq.com 引言 在Flutter的Flex布局系统中&#xff0c;flex属性是控制子…

作者头像 李华
网站建设 2026/7/20 11:30:50

Cocos2dx实战:从零构建仿《水果忍者》游戏,详解物理引擎与性能优化

1. 项目概述&#xff1a;从“切水果”到Cocos2dx实战几年前&#xff0c;当智能手机刚刚普及&#xff0c;触屏游戏风靡一时&#xff0c;《水果忍者》无疑是那个时代的标志性作品之一。它简单、爽快、直观的操作&#xff0c;让无数玩家沉迷于手指划过屏幕切开水果的瞬间。作为一名…

作者头像 李华