首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magick++链接错误

Magick++链接错误
EN

Stack Overflow用户
提问于 2011-09-07 15:09:05
回答 1查看 3.8K关注 0票数 2

我这里有一个使用Magick++(ImageMagick接口)库的简单的图像转换代码。

代码语言:javascript
复制
#include <Magick++.h>
#include <string>
#include <iostream>

using namespace std;

using namespace Magick;

int main(int argc,char **argv) 
{ 
    Image image; 
    image.read("/home/usr1/test.tiff");
    image.write( "/home/usr1/test.bmp" ); 
    return 0;
}

我正在和arm-linux目标进行交叉编译。代码编译成功,但在链接部分,我得到了未定义的引用错误。

代码语言:javascript
复制
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x144): In function `vm_open':
ltdl/loaders/dlopen.c:194: undefined reference to `dlopen'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x158):ltdl/loaders/dlopen.c:198: undefined reference to `dlerror'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x16c): In function `vm_close':
ltdl/loaders/dlopen.c:212: undefined reference to `dlclose'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x17c):ltdl/loaders/dlopen.c:214: undefined reference to `dlerror'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x198): In function `vm_sym':
ltdl/loaders/dlopen.c:227: undefined reference to `dlsym'
/usr/local/lib/libMagick++/libMagickCore.a(dlopen.o)(.text+0x1ac):ltdl/loaders/dlopen.c:231: undefined reference to `dlerror'

我使用以下命令编译代码:

代码语言:javascript
复制
/opt/Mx800SDK/vfitc/cross/bin/arm-linux-g++ -DMx870 -I/opt/Mx800SDK/vfitc/cross/arm-linux/include -I/usr/local/include/ImageMagick -I/opt/Mx800SDK/include -O2 -Wall -c -fmessage-length=0 -fno-strict-aliasing -o'main.o' '../main.cpp'

和链接:

代码语言:javascript
复制
/opt/Mx800SDK/vfitc/cross/bin/arm-linux-g++ -L/opt/Mx800SDK/lib -L/usr/local/lib/libMagick++ -o'imgConverter' ./main.o -lpthread -lMagick++ -lMagickWand -lMagickCore -ltiff -lz

还需要其他库才能成功链接它吗?我的链接是正确的吗?提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-07 15:13:47

尝试反转Magick库,添加MagickWand库(并将libz和其他基础图像库以及动态链接器库放在末尾):

代码语言:javascript
复制
... -lpthread -lMagick++ -lMagickWand -lMagickCore -lz -ldl

请参阅Linker Order - GCC,了解静态库的顺序为什么很重要。

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

https://stackoverflow.com/questions/7330090

复制
相关文章

相似问题

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