0

最近、C++ 用の ImageMagick ライブラリをインストールしました。C++ GUI の経験はありませんが、C++ コマンド ライン プログラミングは得意です。

.exe ファイルを使用して Windows に ImageMagick をインストールし、ライブラリとヘッダー ファイルを C++ にコピーしましたが、デモ プログラムを実行しようとすると常に次のエラーが発生します。

1>------ Build started: Project: Sufiyan, Configuration: Debug Win32 ------
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall Magick::Image::~Image(void)" (__imp_??1Image@Magick@@UAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall Magick::Image::write(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (__imp_?write@Image@Magick@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall Magick::Image::pixelColor(long,long,class Magick::Color const &)" (__imp_?pixelColor@Image@Magick@@QAEXJJABVColor@2@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall Magick::Color::~Color(void)" (__imp_??1Color@Magick@@UAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Magick::Geometry::~Geometry(void)" (__imp_??1Geometry@Magick@@QAE@XZ) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Magick::Image::Image(class Magick::Geometry const &,class Magick::Color const &)" (__imp_??0Image@Magick@@QAE@ABVGeometry@1@ABVColor@1@@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Magick::Geometry::Geometry(char const *)" (__imp_??0Geometry@Magick@@QAE@PBD@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall Magick::Color::Color(char const *)" (__imp_??0Color@Magick@@QAE@PBD@Z) referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl Magick::InitializeMagick(char const *)" (__imp_?InitializeMagick@Magick@@YAXPBD@Z) referenced in function _main
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>C:\Users\Z-Axis\documents\visual studio 2010\Projects\Sufiyan\Debug\Sufiyan.exe : fatal error LNK1120: 10 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

これらは私のラップトップの仕様です:

  • ウィンドウズ7 64ビット。
  • Visual C++ 2010 Express x86
  • イメージマジック x86

これは私がインストールしようとした方法です:

  1. Visual C++ 2010 Express をインストール済み
  2. インストールされたImageMagick
  3. Visual C++ 2010 で ImageMagick ライブラリとインクルードをコピーする
  4. 選択された Win32 -> Windows -> 空のプロジェクト (動作しませんでした)
  5. 選択された Win32 -> DLL (動作しませんでした)
  6. 選択された Win32 -> 静的 (機能しませんでした)

しかし、コードを実行すると、上記のエラーが発生します。

誰かがこの解決策を提案しています:

開始点が必要です
。c:\Program Files\ImageMagick-6.8.1-Q16\Magick++_demos に移動します。
ボタン ワークスペースをクリックし、ビルドして実行します。
これが成功したと仮定して、ボタン ワークスペースを独自のカスタム コードのテンプレートとして使用します。

私もこれを何十回も試しましたが、継続的にこのエラーが発生しています:

プロジェクトは、現在の Visual C++ プロジェクト形式に変換する必要があります。
変換後は、このプロジェクトを以前のバージョンの Visual Studio で編集することはできません。このプロジェクトを変換して開きますか?

クリックYesしても何も起こらず、画面には何も表示されません - プロジェクトが開いていない空の Visual C++ 画面です。

私はどうしても知りたいです: このエラーの原因は何ですか? また、デモ プログラムでさえ動作しないのはなぜですか?

4

1 に答える 1

0

ImageMagick を自分でビルドしてみてください。コンパイラのバージョンが異なるために問題が発生する可能性があります。

ImageMagick の高度な Windows インストールの指示に従います。上記のページの最後に、リンク エラーの解決策があります。プリプロセッサが設定されていることを確認してください。私はそれに従って、プロジェクトを正常に構築しました。

于 2014-03-20T17:58:53.650 に答える