При компиляции расширения PHP, Как компилятор узнает, ГДЕ определение стандартной встроенной функции (например, base64_encode) - PullRequest
0 голосов
/ 11 октября 2018

Я написал расширение PHP, которое вызывало стандартную встроенную функцию php_base64_encode(), например

#include "ext/standard/base64.h"

PHP_FUNCTION(foo_bar) {
    char *arg = NULL;
    size_t arg_len;
    zend_string *strg;

    if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &arg, &arg_len) == FAILURE) {
        return;
    }

    // do something

    strg = php_base64_encode("hello", strlen("hello"));
    RETURN_STR(strg);
}

Я уже знал, что Makefile содержит INCLUDES = -I/usr/local/include/php ..., поэтому компилятор будет знать, гдеext/standard/base64.h есть.Тем не менее, я задаюсь вопросом, откуда компилятор узнает, где определение php_base64_encode().

...