Статическая компиляция ImageMagick с другим проектом выдает ошибки компоновщика - PullRequest
5 голосов
/ 26 марта 2010

Я скачал исходный код ImageMagick, скомпилировал мастер для создания решения Visual Studio для статического связывания и включил проект статической библиотеки Magick ++ в мой пример проекта (код ниже). Я также добавил зависимость от этого проекта и включил в решение файл .lib, ничего не помогает.

#include <Magick++.h>

int main()
{
    Magick::Image image;
    bool test = image.isValid();
    return 0;
}

Это дает несколько ошибок компоновщика, таких как:

неразрешенный внешний символ "__declspec (dllimport) public: virtual __thiscall Magick :: Image :: ~ Image (void)" (__imp _ ?? 1Image @ Magick @@ UAE @ XZ), на который есть ссылка в функции _main

Почему он не может найти реализацию?

Я использую Visual Studio 2010 Beta 2.

Ответы [ 2 ]

2 голосов
/ 28 марта 2010

Проблема может возникнуть из-за того, что вы используете другой компилятор, с которым не была скомпилирована библиотека. Поскольку ваш компилятор довольно новый, вполне вероятно, что он использует другое искажение имен и не может найти сигнатуры методов внутри библиотеки.

0 голосов
/ 19 июня 2010

Эта ошибка странная - компилятор ищет функцию из DLL (__declspec (dllimport)). Вы уверены, что используете правильные заголовочные файлы?

...