1

我正在创建一个带有我单独编写的后端表示的 Qt 小部件。后端使用 Magick++,我可以从命令行编译它:

g++ -c ../SpriteCreator/WriteGIF.cpp sprite.cpp -I ../SpriteCreator/ Magick++-config --cxxflags --cppflags Magick++-config --ldflags --libs-O2

但是当我尝试编译项目 Qt Creator 它告诉我

/home/tpope/obeyYourThirst/qtSpriteEditor/backend/sprite.cpp:15:错误:Magick++.h:没有这样的文件或目录#include <Magick++.h>

我将 Magick++.h 的路径添加到了 INCLUDEPATH,但现在它出现了类似于此的错误:

/home/tpope/obeyYourThirst/qtSpriteEditor/backend/sprite.cpp:66:错误:未定义对“Magick::InitializeMagick(char const*)”的引用

每次使用 Magick 功能。它似乎不包括图书馆。我如何在 Qt Creator 中做到这一点?

4

1 回答 1

1

由于 Qt Creator 中的 .pro 文件(据我所知)用于生成 Makefile,因此我们可以使用 make 在 shell 上运行程序并保存其输出的能力。

我已经添加了:

QMAKE_CXXFLAGS += $(shell Magick++-config --cppflags --cxxflags)

LIBS += $(shell Magick++-config --ldflags --libs)

到我的 .pro 文件中,我可以添加:

#include <Magick++.h>

到我的程序没有编译错误,然后编译一个简单的例子(只需放一个带有几个彩色像素的动画 .gif)

这显然使交叉编译之类的事情变得有些棘手(我不知道如何引用外国库),但这是另一个问题。

于 2016-04-05T23:01:43.353 回答