magick++中的Read函数无法编译
Read function in magick++ wont compile
#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中编译时,我得到以下错误…
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
为什么read函数不能编译。我使用了eclipse中的包配置工具来设置magick++。而且据我所知,其他的函数都能正常工作。我用的是Ubuntu。我使用sudo apt-get install libmagick++-dev安装了Magic++。
更新:我成功了。我已经升级到g++-5。当我用g++-4.9编译时,它工作了。想知道为什么它不能在g++-5中工作吗?
为什么read函数不编译
您的read
函数编译。这是一个链接问题。
为什么不能用g++-5
因为g++-4.x
和g++-5.x
使用不同的ABI,并且不链接兼容(并且您的libMagick*
库是用g++-4.x
构建的)。
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- C++:编译时检查匹配的函数调用对?
- std::vector::p ush_back() 不会在 MSVC 上编译具有已删除移动构造函数的对象
- C++ 在编译时具有函数计算全局变量
- 在运行时解析函数,而不是在编译C++解析函数
- C++中的双边友语函数:如何使其编译?
- 编译 CUDA 与数学函数的叮当
- CPU_ONLY构建:编译函数 Forward() 会给出错误"undefined reference..."
- 使用额外的模板参数编译函数
- 编译函数时遇到问题
- 注释函数的内容,但保持对函数的调用不变.编译器是否弄清楚不编译函数
- 如何根据模板中的类型编译函数
- XPATHNavigator的编译函数中的"后代"是什么意思?
- 如何为编译时已知的参数的多个值编译函数
- 编译函数模板时出现"expected nested-name-specifier"错误
- 无法编译C++函数
- 防止基于模板参数编译函数(或部分函数)
- 用C++编译函数模板时出错