0
この簡単なGraphicsMagickの例をノードバインディング/アドオンとして作成しようとしています。呼び出すときノードアドオン(OSX)のGraphicsMagickコードフリーズ
void AsyncWork(uv_work_t* req) {
std::cout << "AsyncWork..." << std::endl;
Baton* baton = static_cast<Baton*>(req->data);
baton->result = 12345; // Just a test
Magick::Image image; // <--- Freezes here!
image.read("snow.jpg");
std::cout << "Scaling..." << std::endl;
image.scale("200");
std::cout << "Done!" << std::endl;
image.write("snow-scaled.jpg");
// and baton->error to true.
}
出力:このコードは期待通りにGraphicsMagickの1.3.15
#include <Magick++.h>
#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
Magick::InitializeMagick(0);
Magick::Image image;
try {
image.read("snow.jpg");
image.scale("320");
image.write("snow-scaled.jpg");
}
catch(Magick::Exception &error_) {
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
cout << "Image scaled!" << endl;
return 0;
}
Compiling:
g++ scale.cpp `GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs`
Running:
./a.out
Image scaled!
しかし、このコードは、ノード結合(0.6.14)を作るとOSX 10.6.7で動作するだけで(see full gist)をフリーズそれはjavascriptから:
AsyncWork...
何か問題がありますか? サイドノートでは、これは実際にUbuntuでコンパイル/実行すると機能します!