簡體   English   中英

Magick ++中的讀取函數無法編譯

[英]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

為什么讀取功能無法編譯。 我在eclipse中使用了軟件包配置工具來設置Magick ++。 據我所知,所有其他功能都工作正常。 我正在使用Ubuntu。 我使用sudo apt-get install libmagick ++-dev安裝了Magic ++。

更新:我知道了。 我已經升級到g ++-5。 當我使用g ++-4.9編譯時,它可以工作。 想知道為什么它不適用於g ++-5?

為什么讀取功能無法編譯

您的read函數編譯。 您所擁有的是鏈接問題。

為什么它不適用於g ++-5

因為g++-4.xg++-5.x使用不同的ABI ,並且兼容鏈接(並且libMagick*庫是使用g++-4.x構建的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM