Windows上未定义的参考Magick ++到Qt项目

时间:2017-07-18 16:03:56

标签: c++ windows qt dll linker-errors

我在Windows x32计算机上将Magick ++链接到Qt项目时遇到问题。 在linux上它工作正常(我有源文件并使用make和make install)

这是

的.pro文件代码
unix {
    LIBS += -L/usr/local/lib \
    -lMagick++-6.Q16 -lMagickWand-6.Q16 -lMagickCore-6.Q16
}

这里是使用magick ++将pdf转换为图像的方法:

#include <Magick++.h>
#include <QImage>
#include <QDebug>
using namespace std;

QImage pdfToImage(const QString &pathToFile, const QString &targetImageType)
{
   try
   {
       Magick::Image img;
       Magick::Blob blob;
       img.read(pathToFile.toStdString());

       img.magick(targetImageType.toStdString());
       img.write(&blob);
       const QByteArray imageData((char*)(blob.data()),blob.length());
       QImage image;
       image.loadFromData(imageData);
       return image;
   }
  catch (Magick::Warning &warning)
  {
      qDebug() << warning.what();
     return QImage();
 }
}

int main(int argc, char *argv[])
{
   pdfToImage("filename", "png");
   return 0;
}

这是我的.pro文件:

QT += core widgets

TARGET = magickcpp_test_include
TEMPLATE = app

SOURCES += main.cpp

win32: LIBS += -L$$PWD/libs/ImageMagick-6.8.5/win32/ -llibMagick++-6.Q16.dll

INCLUDEPATH += $$PWD/libs/ImageMagick-6.8.5/include/ImageMagick-6
DEPENDPATH += $$PWD/libs/ImageMagick-6.8.5/win32


win32: LIBS += -L$$PWD/libs/ImageMagick-6.8.5/win32/ -llibMagickCore-6.Q16.dll

INCLUDEPATH += $$PWD/libs/ImageMagick-6.8.5/include/ImageMagick-6
DEPENDPATH += $$PWD/libs/ImageMagick-6.8.5/win32

win32: LIBS += -L$$PWD/libs/ImageMagick-6.8.5/win32/ -llibMagickWand-6.Q16.dll

INCLUDEPATH += $$PWD/libs/ImageMagick-6.8.5/include/ImageMagick-6
DEPENDPATH += $$PWD/libs/ImageMagick-6.8.5/win32

输出:

C:\Users\vadixem\qt_projects\magickpp_test_include\main.cpp:13: error: undefined reference to `Magick::Image::read(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
C:\Users\vadixem\qt_projects\magickpp_test_include\main.cpp:15: error: undefined reference to `Magick::Image::magick(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2.exe:-1: error: error: ld returned 1 exit status

我很长时间都在寻找答案。请帮忙。提前致谢

0 个答案:

没有答案