C++ jpeg#u read#u image’;不是‘;boost:gil’;

C++ jpeg#u read#u image’;不是‘;boost:gil’;,c++,boost,compiler-errors,jpeg,gil,C++,Boost,Compiler Errors,Jpeg,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>

我正在尝试读取带有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" );
    
    }
#包括
#包括
#包括
#包括
#包括
void ReadAnImage(std::string fname){
std::向量点;
boost::gil::rgb8_image_t img;
boost::gil::jpeg_read_图像(fname,img);
}                          
内部主(空){
ReadAnImage(“pic.jpg”);
}
当我试图用

g++-I~/programs/cpp/boost/include/-std=c++11 main.cpp-o main

我得到以下错误

MainNew.cpp:(.text.\u ZN5boost3gil6detail11jpeg\u reader4initEv[\u ZN5boost3gil6detail11jpeg\u reader4initEv]+0x1a):未定义对
jpeg\u std\u error'MainNew.cpp:(.text.\u ZN5boost3gil6detail11jpeg\u reader4initEv[\u ZN5boost3gil6detail11jpeg\u reader4initEv]+0x3f):未定义的引用
MainNew.cpp:(.text.\u ZN5boost3gil6detail11jpeg\u reader4initEv[\u ZN5boost3gil6detail11jpeg\u reader4initEv]+0x61):未定义对
jpeg\u stdio\u src'MainNew.cpp:(.text.\u ZN5boost3gil6detail11jpeg\u reader4initEv[\u ZN5boost3gil6detail11jpeg\u reader4initEv]+0x76):未定义的引用
/tmp/ccrGnMRc.o:In function
boost::gil::detail::jpeg_reader::~jpeg_reader()':MainNew.cpp:(.text.\u ZN5boost3gil6detail11jpeg_readerD2Ev[\u ZN5boost3gil6detail11jpeg_readerD5Ev]+0x18):对
jpeg_destroy_解压的未定义引用 /tmp/ccrGnMRc.o:In function
void boost::gil::detail::jpeg\u reader::apply(boost::gil::image\u view const&)':MainNew.cpp:(.text.)_[ZN5boost3gil6detail11jpeg读取器应用于图像视图中基于内存的2d定位器基于内存的步进迭代器中的PixelIhns0Layoutin0红色、绿色、蓝色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色、绿色
main new.cpp:(.text.ZN5boost3gil6detail11jpeg读取器5applyins0\u 10图像视图0\u 23基于内存的二维定位器0\u 26基于内存的步骤迭代器pNS0\u 5pixelIhNS0\u 3mpl7矢量图0\u 5红色强度0\u 7绿色强度0\u 6蓝色范围
3EEEEEVRKT[ZN5boost3gil6detail11jpeg读取器在基于内存的二维定位器中应用图像视图在基于内存的步骤迭代器中使用像素布局矢量在0红色、绿色、蓝色、绿色范围内
Eli3eeevrkt]+0x13e):对
jpeg\u read\u scanlines的main.cpp:(.text.\u zn5boost3gil6jpeg\u reader5applyINS0\u 23memory\u 2d\u locator\u 26memory\u based\u step\u iterator\u 5pixelIhNS0\u 6lay0\u 5pl7vector3in0\u红、绿、蓝、蓝、蓝、蓝、蓝、蓝、蓝、蓝范围的未定义引用_[\u zn5 boost3 gil6 detail11 jpeg读取器5应用程序10图像视图0\u 23基于内存的2维定位器0\u 26基于内存的步进迭代程序0\u 5像素路径0\u 3PL7矢量0\u 5红色0\u 7绿色0\u 0\u 6蓝色0\u范围Eli3eeeeeeverkt+0x1ad]:未定义的参考解压完成
collect2:错误:ld返回了1个退出状态

我不太确定我做错了什么,因为根据文件 jpeg\u read\u图像应包含在boost::gil中。我是否可能缺少另一个头文件??
非常感谢您的任何提示。

您链接到的文档已经过时了。I/O似乎已经成为一个非常简单的API(一个处理所有格式的
read\u image
函数)@一些程序员。谢谢你的提示。我尝试过修改代码。但仍然无法让它工作。编译命令应该是g++-I~/programs/cpp/boost/include/-std=c++11 main.cpp-o main-ljpeg。然后就可以了