: This article mainly introduces the redefinition issue of function redefinition when using C ++ to extend php. if you are interested in PHP tutorials, refer to it. Problem: When I used C ++ to expand php, I used some mathematical library functions such as sqr and sqrt. I needed to # include in the source file test. cpp of the C ++ extension project. However, during compilation, we found that these functions had the problem of redefining redefinition.
After multiple attempts, I found that this problem was not solved when I removed the # include "php. h" starting with test. cpp.
Cause: The query is known because php. h, many C ++ library functions are implemented in inline, which is directly defined in php. h, resulting in the stdio function file in the C ++ library. identification of functions with the same name in h is redefined (inline-modified functions cannot be defined in other files)
Solution: write the C ++ header file # include with a redefinition function before # include "php. h". Block the inline function. the position in test. cpp is as follows:
#ifdef HAVE_CONFIG_H#include "config.h"#endif#include
#include
#include
#include
#include
#include
#include
#include "php.h"#include "php_ini.h"#include "ext/standard/info.h"#include "php_NearestNeighbors.h"
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.
The above introduces the redefinition issue of function redefinition when C ++ is used to extend php, including some content, and hope to help friends who are interested in PHP tutorials.