C++로 PHP를 확장할 때 함수 재정의 문제

WBOY
풀어 주다: 2016-08-08 09:21:30
원래의
1250명이 탐색했습니다.

문제: C++를 사용하여 PHP를 확장할 때 sqr, sqrt 등과 같은 일부 수학 라이브러리 함수를 사용합니다. C++ 확장 프로젝트의 소스 파일 test.cpp에 #include , 하지만 컴파일 중에 발견했습니다. 이 함수에는 재정의 문제가 있습니다.

많은 시도 끝에 test.cpp 시작 부분의 #include "php.h"를 제거하면 이 문제가 사라지는 것을 발견했습니다.

원인: php.h , 많은 C++ 라이브러리 함수가 php.h에서 직접 인라인 및 정의되어 C++ 라이브러리 함수 파일 stdio.h에 있는 동일한 이름의 함수 정의가 재정의로 인식됩니다(인라인 수정 함수는 php.h에서 정의될 수 없습니다). 다른 파일)

해결 방법: 인라인 함수를 차단하려면 #include "php.h" 앞에 재정의된 함수가 포함된 C++ 헤더 파일의 #include를 작성하세요.

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

<strong>#include <stdio.h>
#include <string.h>
#include <math.h>
#include <map>
#include <vector>
#include <set>
#include <queue></strong>

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_NearestNeighbors.h"
로그인 후 복사

저작권: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용은 관련 측면을 포함하여 PHP를 C++로 확장할 때의 함수 재정의 문제를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!