<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>N.S.thoughts &#187; gmagick</title>
	<atom:link href="http://nightsailer.com/tag/gmagick/feed" rel="self" type="application/rss+xml" />
	<link>http://nightsailer.com</link>
	<description>...silent is golden...</description>
	<lastBuildDate>Wed, 01 Sep 2010 17:01:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Patch for build gmagick on mac osx 10.6(snow leopard)</title>
		<link>http://nightsailer.com/2009/12/03/571.html</link>
		<comments>http://nightsailer.com/2009/12/03/571.html#comments</comments>
		<pubDate>Wed, 02 Dec 2009 17:33:27 +0000</pubDate>
		<dc:creator>nightsailer</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technotes]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[gmagick]]></category>
		<category><![CDATA[Snow Leopard]]></category>

		<guid isPermaLink="false">http://night9.cn/?p=571</guid>
		<description><![CDATA[在mac osx 10.6.2(snow leopard)编译gmagick失败. 错误如下:
ld: duplicate symbol _php_gmagick_sc_entry in .libs/gmagick_methods.o and .libs/gmagick_helpers.o
collect2: ld returned 1 exit status
make: *** [gmagick.la] Error 1
感觉很奇怪,因为在centos上没问题. 检查了下gmagick_methods.c和gmagic_helpers.c 也没有重复定义啊.
$ nm .libs/gmagick_methods.o &#124;grep _php_gmagick_sc_entry
000000000000f570 S _php_gmagick_sc_entry
$ nm .libs/gmagick_helpers.o &#124;grep _php_gmagick_sc_entry
00000000000034b8 S _php_gmagick_sc_entry
Oh, ld没错, 的确是重复定义了,由于类型是S,那么还是php_gmagick_sc_entry的声明有问题.
再仔细查看了一下,果然. 由于php_gmagick_sc_entry是在php_gmagick.h中声明,而在gmagick_methods.c
和gmagic_helpers.c中都include了这个文件. 由于没有显示声明为exten导致了问题. 重新加入exten修饰符,
ok.
===========Patch=============
&#8212; php_gmagick.h       1970-01-01 17:13:08.000000000 +0800
+++ php_gmagick.h.ns    2009-12-03 [...]]]></description>
			<content:encoded><![CDATA[<p>在mac osx 10.6.2(snow leopard)编译gmagick失败. 错误如下:</p>
<p>ld: duplicate symbol _php_gmagick_sc_entry in .libs/gmagick_methods.o and .libs/gmagick_helpers.o<br />
collect2: ld returned 1 exit status<br />
make: *** [gmagick.la] Error 1</p>
<p>感觉很奇怪,因为在centos上没问题. 检查了下gmagick_methods.c和gmagic_helpers.c 也没有重复定义啊.</p>
<p>$ nm .libs/gmagick_methods.o |grep _php_gmagick_sc_entry<br />
000000000000f570 S _php_gmagick_sc_entry<br />
$ nm .libs/gmagick_helpers.o |grep _php_gmagick_sc_entry<br />
00000000000034b8 S _php_gmagick_sc_entry</p>
<p>Oh, ld没错, 的确是重复定义了,由于类型是S,那么还是php_gmagick_sc_entry的声明有问题.<br />
再仔细查看了一下,果然. 由于php_gmagick_sc_entry是在php_gmagick.h中声明,而在gmagick_methods.c<br />
和gmagic_helpers.c中都include了这个文件. 由于没有显示声明为exten导致了问题. 重新加入exten修饰符,<br />
ok.</p>
<p>===========Patch=============<br />
&#8212; php_gmagick.h       1970-01-01 17:13:08.000000000 +0800<br />
+++ php_gmagick.h.ns    2009-12-03 01:17:52.000000000 +0800<br />
@@ -18,7 +18,7 @@<br />
 */</p>
<p> #ifndef HAVE_PHP_GMAGICK_H<br />
-# define HAVE_PHP_GMAGICK_H<br />
+#define HAVE_PHP_GMAGICK_H</p>
<p> /* Define Extension Properties */<br />
 #define PHP_GMAGICK_EXTNAME    &#8220;gmagick&#8221;<br />
@@ -107,12 +107,12 @@<br />
 #endif</p>
<p> /* Class entries */<br />
-zend_class_entry *php_gmagick_sc_entry;<br />
-zend_class_entry *php_gmagickdraw_sc_entry;<br />
-zend_class_entry *php_gmagickpixel_sc_entry;<br />
-zend_class_entry *php_gmagick_exception_class_entry;<br />
-zend_class_entry *php_gmagickdraw_exception_class_entry;<br />
-zend_class_entry *php_gmagickpixel_exception_class_entry;<br />
+extern zend_class_entry *php_gmagick_sc_entry;<br />
+extern zend_class_entry *php_gmagickdraw_sc_entry;<br />
+extern zend_class_entry *php_gmagickpixel_sc_entry;<br />
+extern zend_class_entry *php_gmagick_exception_class_entry;<br />
+extern zend_class_entry *php_gmagickdraw_exception_class_entry;<br />
+extern zend_class_entry *php_gmagickpixel_exception_class_entry;</p>
<p> /* Forward declarations */<br />
 PHP_METHOD(gmagick, __construct);<br />
&#8212; gmagick.c   1970-01-01 17:13:08.000000000 +0800<br />
+++ gmagick.c.ns        2009-12-03 01:44:20.000000000 +0800<br />
@@ -27,6 +27,13 @@<br />
 static zend_object_handlers gmagickdraw_object_handlers;<br />
 static zend_object_handlers gmagickpixel_object_handlers;</p>
<p>+zend_class_entry *php_gmagick_sc_entry;<br />
+zend_class_entry *php_gmagickdraw_sc_entry;<br />
+zend_class_entry *php_gmagickpixel_sc_entry;<br />
+zend_class_entry *php_gmagick_exception_class_entry;<br />
+zend_class_entry *php_gmagickdraw_exception_class_entry;<br />
+zend_class_entry *php_gmagickpixel_exception_class_entry;<br />
+<br />
 /* {{{ static void php_gmagick_object_free_storage(void *object TSRMLS_DC)<br />
 */<br />
 static void php_gmagick_object_free_storage(void *object TSRMLS_DC)<br />
===========END PATCH============</p>
<p>UPDATE: 作者<a href="http://vitochin.blogspot.com/">Vito</a>回信很迅速啊, 他只使用Linux,patch已经被采纳了.</p>
]]></content:encoded>
			<wfw:commentRss>http://nightsailer.com/2009/12/03/571.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>解决GraphicsMagick 和 ImageMagick冲突(PHP imagick and gmagick extension)</title>
		<link>http://nightsailer.com/2009/12/02/565.html</link>
		<comments>http://nightsailer.com/2009/12/02/565.html#comments</comments>
		<pubDate>Wed, 02 Dec 2009 08:18:29 +0000</pubDate>
		<dc:creator>nightsailer</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technotes]]></category>
		<category><![CDATA[gmagick]]></category>
		<category><![CDATA[imagick]]></category>

		<guid isPermaLink="false">http://night9.cn/2009/12/02/565.html</guid>
		<description><![CDATA[发现PHP imagick or magickwand无法正确加载. 经过测试发现是由于和gmagick冲突. 解决, 在编译GraphicsMagick时候加入:
 &#8211;enable-symbol-prefix 
重新编译后正常.
]]></description>
			<content:encoded><![CDATA[<p>发现PHP imagick or magickwand无法正确加载. 经过测试发现是由于和gmagick冲突. 解决, 在编译GraphicsMagick时候加入:</p>
<p> &#8211;enable-symbol-prefix </p>
<p>重新编译后正常.</p>
]]></content:encoded>
			<wfw:commentRss>http://nightsailer.com/2009/12/02/565.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
