c++ - jpeg_read_image' 不是 'boost::gil' 的成员
问题描述
我正在尝试使用 boost::gil 读取 jpg 文件。我从以下代码片段开始,但我已经卡住了。
#include <iostream>
#include <vector>
#include <string>
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/jpeg_dynamic_io.hpp>
void ReadAnImage( std::string fname ){
std::vector<std::vector<float> > points;
boost::gil::rgb8_image_t img;
boost::gil::jpeg_read_image( fname , img );
}
int main( void ){
ReadAnImage( "pic.jpg" );
}
当我尝试用
g++ -I ~/programs/cpp/boost/include/ -std=c++11 main.cpp -o main
我收到以下错误
MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_reader4initEv[_ZN5boost3gil6detail11jpeg_reader4initEv]+0x1a): undefined reference to
jpeg_std_error' MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_reader4initEv[_ZN5boost3gil6detail11jpeg_reader4initEv]+0x3f): undefined reference to
jpeg_CreateDecompress' MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_reader4initEv[_ZN5boost3gil6detail11jpeg_reader4initEv]+0x61): undefined reference tojpeg_stdio_src' MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_reader4initEv[_ZN5boost3gil6detail11jpeg_reader4initEv]+0x76): undefined reference to
jpeg_read_header' /tmp/ccrGnMRc.o: In functionboost::gil::detail::jpeg_reader::~jpeg_reader()': MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_readerD2Ev[_ZN5boost3gil6detail11jpeg_readerD5Ev]+0x18): undefined reference to
jpeg_destroy_decompress' /tmp/ccrGnMRc.o: In functionvoid boost::gil::detail::jpeg_reader::apply<boost::gil::image_view<boost::gil::memory_based_2d_locator<boost::gil::memory_based_step_iterator<boost::gil::pixel<unsigned char, boost::gil::layout<boost::mpl::ve ctor3<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mpl::range_c<int, 0, 3> > >*> > > >(boost::gil::image_view<boost::gil::memory_based_2d_locator<boost::gil::memory_based_step_iterator<boost::gil::pixel<unsigned cha r, boost::gil::layout<boost::mpl::vector3<boost::gil::red_t, boost::gil::green_t, boost::gil::blue_t>, boost::mpl::range_c<int, 0, 3> > >*> > > const&)': MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_reader5applyINS0_10image_viewINS0_23memory_based_2d_locatorINS0_26memory_based_step_iteratorIPNS0_5pixelIhNS0_6layoutINS_3mpl7vector3INS0_5red_tENS0_7green_tENS0_6blue_tEEENS9_7range_cIiLi0ELi 3EEEEEEEEEEEEEEEvRKT_[_ZN5boost3gil6detail11jpeg_reader5applyINS0_10image_viewINS0_23memory_based_2d_locatorINS0_26memory_based_step_iteratorIPNS0_5pixelIhNS0_6layoutINS_3mpl7vector3INS0_5red_tENS0_7green_tENS0_6blue_tEEENS9_7range_cIiLi0 ELi3EEEEEEEEEEEEEEEvRKT_]+0x2e): undefined reference to
jpeg_start_decompress' MainNew.cpp:(.text. ZN5boost3gil6detail11jpeg_reader5applyINS0_10image_viewINS0_23memory_based_2d_locatorINS0_26memory_based_step_iteratorIPNS0_5pixelIhNS0_6layoutINS_3mpl7vector3INS0_5red_tENS0_7green_tENS0_6blue_tEEENS9_7range_cIiLi0ELi 3EEEEEEEEEEEEEEEvRKT [ZN5boost3gil6detail11jpeg_reader5applyINS0_10image_viewINS0_23memory_based_2d_locatorINS0_26memory_based_step_iteratorIPNS0_5pixelIhNS0_6layoutINS_3mpl7vector3INS0_5red_tENS0_7green_tENS0_6blue_tEEENS9_7range_cIiLi0 ELi3EEEEEEEEEEEEEEEvRKT ]+0x13e): undefined reference tojpeg_read_scanlines' MainNew.cpp:(.text._ZN5boost3gil6detail11jpeg_reader5applyINS0_10image_viewINS0_23memory_based_2d_locatorINS0_26memory_based_step_iteratorIPNS0_5pixelIhNS0_6layoutINS_3mpl7vector3INS0_5red_tENS0_7green_tENS0_6blue_tEEENS9_7range_cIiLi0ELi 3EEEEEEEEEEEEEEEvRKT_[_ZN5boost3gil6detail11jpeg_reader5applyINS0_10image_viewINS0_23memory_based_2d_locatorINS0_26memory_based_step_iteratorIPNS0_5pixelIhNS0_6layoutINS_3mpl7vector3INS0_5red_tENS0_7green_tENS0_6blue_tEEENS9_7range_cIiLi0 ELi3EEEEEEEEEEEEEEEvRKT_]+0x1ad): undefined reference to
jpeg_finish_decompress' collect2: error: ld returned 1 exit status
我不太确定我做错了什么。因为根据文档 https://www.boost.org/doc/libs/1_74_0/libs/gil/doc/html/index.html jpeg_read_image 应该包含在 boost::gil 中。我可能错过了另一个头文件吗?非常感谢任何提示。
解决方案
推荐阅读
- javascript - NextJS URLs 和动态路由到索引路由
- javascript - 如何检查一个对象是否包含另一个对象,例如
- reactjs - 我正在尝试更新状态“体验”,但我没有得到更新的值。如果我的代码错误,请更正
- visual-studio - 在 Visual Studio .NET Standard 项目中打开 MDriven EcoSpace 或 PMP 组件设计器时出错
- python - Python,MySql ON 重复键语法错误
- r - Dataframe 中的 Dataframe 以检索股票信息
- python - 如何在python中找到卡方分布的临界值?
- java - 即使在给出 if 条件以查找“辅音”之后,程序如何打印所有字母
- c# - C# Windows 窗体应用程序如何初始化数组一次而不是每次发生按钮事件时
- android - 哪个是为 android 设计 UI(编码或拖放)的最佳方式?