将下载好的uuid扩展下载下来,下载地址
下载后之后编译会不成功,会出现
use of undeclared identifier 'UUID_TYPE_DCE_TIME'
这样的错误
解决办法,因为不知道如何上传文件,这里先简单写一下如何修改,等以后研究好了如何上传文件后将修改后的文件上传上来。
修改未编译前的几个文件,第一个修改config.m4文件:
在第10行:PHP_CHECK_FUNC_LIB(uuid_variant, uuid)后面添加两行内容
PHP_CHECK_FUNC_LIB(uuid_time, uuid)
PHP_CHECK_FUNC_LIB(uuid_mac, uuid)
删除第18行之后的下面两行内容:
PHP_SUBST(UUID_SHARED_LIBADD)
PHP_ADD_LIBRARY_WITH_PATH(uuid, $PHP_UUID_DIR/lib, UUID_SHARED_LIBADD)
然后添加下面几行内容:
AC_MSG_CHECKING(PHP version) AC_TRY_COMPILE([], [ #ifdef __APPLE__ #error compiling on darwin #endif ], [], [export UUID_ON_MAC=true]) if test $UUID_ON_MAC != "true"; then PHP_SUBST(UUID_SHARED_LIBADD) PHP_ADD_LIBRARY_WITH_PATH(uuid, $PHP_UUID_DIR/lib, UUID_SHARED_LIBADD) fi
最后删除如下一行内容:PHP_SUBST(UUID_SHARED_LIBADD)第二个文件为php_uuid.h做如下修改在PHP_FUNCTION(uuid_time);这一段内容之前添加如下内容#if HAVE_UUID_TIME在这一段内容之后添加如下内容#endif /* HAVE_UUID_TIME */在PHP_FUNCTION(uuid_mac);这一块内容之前和最后添加分别添加下面两行:#if HAVE_UUID_MAC #endif /* HAVE_UUID_MAC */在PHP_FUNCTION(uuid_parse); #if (PHP_MAJOR_VERSION >= 5) @@ -185,6 +190,15 @@ ZEND_END_ARG_INFO() } // extern "C" #endif这段之后添加添加下面一段内容:#ifndef UUID_TYPE_DCE_TIME #ifdef __APPLE__ /* UUID Type definitions */ #define UUID_TYPE_DCE_TIME 1 #define UUID_TYPE_DCE_RANDOM 4 #endif /* __MACOS__ */ #endif /* UUID_TYPE_DCE_TIME */最后将#endif /* PHP_HAVE_UUID */改为#endif /* HAVE_UUID */第三个文件tests/uuid_mac.phpt修改为--TEST-- uuid_mac() function --SKIPIF-- <?php if(!extension_loaded('uuid')) die('skip '); if(!function_exists('uuid_mac')) die('skip not compiled in (HAVE_UUID_MAC)'); ?> --FILE-- <?php var_dump(uuid_mac("b691c99c-7fc5-11d8-9fa8-00065b896488")); var_dump(uuid_mac("878b258c-a9f1-467c-8e1d-47d79ca2c01b")); ?> --EXPECT-- string(12) "00065b896488" bool(false)第四个文件tests/uuid_time.phpt修改为--TEST-- uuid_time() function --SKIPIF-- <?php if(!extension_loaded('uuid')) die('skip '); if(!function_exists('uuid_time')) die('skip not compiled in (HAVE_UUID_TIME)'); ?> --FILE-- <?php var_dump(uuid_time("b691c99c-7fc5-11d8-9fa8-00065b896488")); var_dump(uuid_time("878b258c-a9f1-467c-8e1d-47d79ca2c01b")); ?> --EXPECT-- int(1080374815) bool(false)第五个文件uuid.c将uuid_functions修改为zend_function_entry uuid_functions[] = { PHP_FE(uuid_create , uuid_create_arg_info) PHP_FE(uuid_is_valid , uuid_is_valid_arg_info) PHP_FE(uuid_compare , uuid_compare_arg_info) PHP_FE(uuid_is_null , uuid_is_null_arg_info) #if HAVE_UUID_TYPE PHP_FE(uuid_type , uuid_type_arg_info) #endif /* HAVE_UUID_TYPE */ #if HAVE_UUID_VARIANT PHP_FE(uuid_variant , uuid_variant_arg_info) #endif /* HAVE_UUID_VARIANT */ #if HAVE_UUID_TIME PHP_FE(uuid_time , uuid_time_arg_info) #endif /* HAVE_UUID_TIME */ #if HAVE_UUID_MAC PHP_FE(uuid_mac , uuid_mac_arg_info) #endif /* HAVE_UUID_MAC */ PHP_FE(uuid_parse , uuid_parse_arg_info) PHP_FE(uuid_unparse , uuid_unparse_arg_info) { NULL, NULL, NULL } };