NMAKE: фатальная ошибка U1077: '"': код возврата '0x1' - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать расширение 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.    

Почему я получаю ошибки и как это исправить?

1 Ответ

0 голосов
/ 03 июня 2019

Подобная ошибка свидетельствует об отсутствии Windows 10 SDK.В более поздних версиях PHP должны быть более качественные сообщения об ошибках, необходимые инструменты: mt.exe и mc.exe.

Кроме этого, я бы рекомендовал использовать документированные версии Visual Studio и SDK для лучшего опыта.

Спасибо

...