Я пытаюсь создать расширение php с помощью c / c ++.
Я установил Visual Studio 2019 с измененной установкой:
- только установить MSVC v140 - VS 2015 C ++инструменты сборки (v14.00)
- Установить рабочие нагрузки
Windows
, а также скачали источник php7.1.28.
Ниже приведен мой файл на C:\php-7.1.28\ext\helloworld\
Файл: config.w32
ARG_ENABLE("helloworld", "helloworld support", "no");
if (PHP_HELLOWORLD == "yes") {
EXTENSION("helloworld", "php_helloworld.c", true);
}
Файл: php_helloworld.h
// we define Module constants
#define PHP_HELLOWORLD_EXTNAME "php_helloworld"
#define PHP_HELLOWORLD_VERSION "0.0.1"
// then we declare the function to be exported
PHP_FUNCTION(helloworld_php);
Файл: php_helloworld.c
// include the PHP API itself
#include <php.h>
// then include the header of your extension
#include "php_helloworld.h"
// register our function to the PHP API
// so that PHP knows, which functions are in this module
zend_function_entry helloworld_php_functions[] = {
PHP_FE(helloworld_php, NULL)
{NULL, NULL, NULL}
};
// some pieces of information about our module
zend_module_entry helloworld_php_module_entry = {
STANDARD_MODULE_HEADER,
PHP_HELLOWORLD_EXTNAME,
helloworld_php_functions,
NULL,
NULL,
NULL,
NULL,
NULL,
PHP_HELLOWORLD_VERSION,
STANDARD_MODULE_PROPERTIES
};
// use a macro to output additional C code, to make ext dynamically loadable
ZEND_GET_MODULE(helloworld_php)
// Finally, we implement our "Hello World" function
// this function will be made available to PHP
// and prints to PHP stdout using printf
PHP_FUNCTION(helloworld_php) {
php_printf("Hello World! (from our extension)\n");
}
После Iхочу сделать расширение, используя php7.1.28
source с компилятором MSVC14 (Visual C++ 2015)
, следующий журнал - моя ошибка.
C:\php-7.1.28>nmake
Microsoft (R) Program Maintenance Utility Version 14.00.24245.0
Copyright (C) Microsoft Corporation. All rights reserved.
Recreating build dirs
type ext\pcre\php_pcre.def > C:\php-7.1.28\x64\Release_TS\php7ts.dll.def
"" -h win32\ -r C:\php-7.1.28\x64\Release_TS\ -x C:\php-7.1.28\x64\Release_TS\
win32\build\wsyslog.mc
'-h' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: '"' : return code '0x1'
Stop.
Почему я получаю ошибки и как это исправить?