zephir make: *** No targets specified and no makefile found. Stop.
时间: 2024-05-25 14:09:17 浏览: 15
zephir是一种用于构建PHP扩展的编程语言。在使用zephir编写PHP扩展时,如果执行"zephir build"命令时出现"make: *** No targets specified and no makefile found. Stop."的错误提示,这通常意味着你的扩展中缺少一个名为"Makefile"的文件,这个文件包含了编译和链接你的扩展所需要的信息。你需要检查一下你的扩展目录下是否存在Makefile文件,如果不存在,可以尝试执行"zephir build"命令重新生成Makefile文件。如果问题仍然存在,请检查你的扩展代码和zephir配置是否正确。
相关问题
用zephir写php扩展demo
好的,下面是一个使用 Zephir 编写的简单的 PHP 扩展示例:
1. 首先,创建一个名为 `hello` 的文件夹,该文件夹包含以下内容:
```
hello/
├── ext/
│ └── config.m4
│ └── hello.zep
│ └── php_hello.h
├── hello.php
└── php.ini
```
2. 在 `ext` 目录下创建一个名为 `config.m4` 的文件,并将以下内容添加到该文件中:
```m4
PHP_ARG_ENABLE(hello, whether to enable Hello support, [ --enable-hello Enable Hello support])
if test "$PHP_HELLO" = "yes"; then
PHP_SUBST(HELLO_SHARED_LIBADD)
PHP_NEW_EXTENSION(hello, hello.zep, $ext_shared)
fi
```
3. 在 `ext` 目录下创建一个名为 `hello.zep` 的文件,并将以下内容添加到该文件中:
```zephir
namespace Hello;
function sayHello() -> void
{
echo "Hello, world!";
}
```
4. 在 `ext` 目录下创建一个名为 `php_hello.h` 的文件,并将以下内容添加到该文件中:
```c
#ifndef PHP_HELLO_H
#define PHP_HELLO_H 1
#include "php.h"
extern zend_module_entry hello_module_entry;
#define phpext_hello_ptr &hello_module_entry
#endif
```
5. 在 `hello` 目录下创建一个名为 `hello.php` 的文件,并将以下内容添加到该文件中:
```php
<?php
if (!extension_loaded('hello')) {
dl('hello.' . PHP_SHLIB_SUFFIX);
}
Hello\sayHello();
```
6. 在 `hello` 目录下创建一个名为 `php.ini` 的文件,并将以下内容添加到该文件中:
```ini
extension=hello
```
7. 在命令行中导航到 `hello/ext` 目录,并运行以下命令来编译并安装扩展:
```
zephir build
sudo make install
```
8. 在命令行中导航到 `hello` 目录,并运行以下命令来运行 PHP 脚本:
```
php hello.php
```
输出应该是 `Hello, world!`。
这是一个非常简单的示例,但它可以让您了解如何使用 Zephir 编写 PHP 扩展。您可以使用更复杂的代码来构建更高级的扩展。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![dmg](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)