首页 > 解决方案 > 断言失败。尝试使用 Magick++ 创建图像

问题描述

我正在尝试从第 8 页的这个示例中运行这个简单的代码。我正在尝试创建一个图像然后编写它,但它甚至不允许我创建图像。

这是代码:

#include <Magick++.h>
#include <iostream>

int main()
{
    Magick::Image p("300x300", "red");
    //~ p.write("red.png");
    return 0;
}

这是编译命令:

g++ Magick++-config --cppflags --cxxflags --ldflags --libs main.cpp -o main

这是错误:

main: magick/semaphore.c:606: LockSemaphoreInfo: Assertion `semaphore_info != (SemaphoreInfo *) NULL' failed.
Aborted

我在 Virtualbox 上使用 Debian 9。它编译得很好。它只是没有运行,我不知道那个错误是什么意思。我在网上也找不到。有人可以帮忙吗?

标签: c++debianimagemagicksemaphoremagick++

解决方案


我没有初始化magick,因为我认为这仅适用于Windows用户。这是更新的代码。

#include <Magick++.h>
#include <iostream>

int main()
{
    Magick::InitializeMagick(nullptr); // <--- added this line
    Magick::Image p("300x300", "red");
    p.write("red.png");
    return 0;
}

我希望这可以帮助其他面临这个问题的人。


推荐阅读