首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >magick++中的读取函数不会编译

magick++中的读取函数不会编译
EN

Stack Overflow用户
提问于 2015-08-28 00:49:02
回答 1查看 728关注 0票数 1
代码语言:javascript
复制
#include <iostream>
#include <Magick++.h>

int main()
{
    Magick::InitializeMagick(NULL);
    Magick::Image im;
    im.read("/home/chase/Desktop/m42.jpg");
    im.display();
    return 0;
}

当我试图在eclipse中编译时,我会得到以下错误.

代码语言:javascript
复制
Building file: ../main.cpp
Invoking: GCC C++ Compiler
g++ -std=c++0x -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -I/usr/include/ImageMagick-6 -O0 -g3 -Wall -c -fmessage-length=0 -fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
Finished building: ../main.cpp

Building target: Stacking
Invoking: GCC C++ Linker
g++ -L../ -o "Stacking"  ./main.o   -lMagick++-6.Q16 -lMagickWand-6.Q16 -lMagickCore-6.Q16 -lMagick++-6.Q16 -lMagickWand-6.Q16 -lMagickCore-6.Q16
./main.o: In function `main':
/home/chase/workspace/Stacking/Debug/../main.cpp:8: undefined reference to `Magick::Image::read(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
makefile:44: recipe for target 'Stacking' failed
make: *** [Stacking] Error 1

为什么读取函数不编译。我使用eclipse中的包配置工具来设置Magick++。而且,据我所知,所有其他功能都可以正常工作。我在用Ubuntu。我使用sudo安装libmagick++-dev安装Magic++。

更新:我已经开始工作了。我已经升级到g++5了。当我用g++-4.9编译时,它起作用了。不知道为什么g++-5不起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-28 04:15:40

为什么读取函数不编译

您的read函数确实编译了。你所拥有的是链接问题。

为什么它不适用于g++-5

因为g++-4.xg++-5.x使用不同的ABI,并且不兼容链接(而且您的libMagick*库是用g++-4.x构建的)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32261677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档