c++ - 断言失败。尝试使用 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。它编译得很好。它只是没有运行,我不知道那个错误是什么意思。我在网上也找不到。有人可以帮忙吗?
解决方案
我没有初始化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;
}
我希望这可以帮助其他面临这个问题的人。
推荐阅读
- javascript - 从另一个分层对象创建分层对象
- angular - Angular:是什么让这个 getter(s) 与公共成员不同?
- python - 如何将 Python 数据转储到已创建的 JSON 文件夹中?
- php - 图片上传到目录并裁剪
- python - 如何查找一个单词是否出现两次,一个数字在一个元组中出现一次
- excel - 如何编写代码来检查列是否包含值,然后将指定的值放入另一个单元格
- python - 如何重写代码来修复错误(RuntimeError: This event loop is already running. ) websockets + asyncio
- mocking - php:如何在 PhpUnit 测试中模拟 SoapClient 对 __soapCall() 的响应
- java - 如何获取从蓝牙传入消息返回的字节数组值并在将其显示在其他设备上之前对其进行编辑?
- mysql - 在 WordPress 数据库自定义表查询中按常用列名显示数据行