亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

用qt creator搭建開發(fā)、調(diào)試php擴(kuò)展的環(huán)境

appetizerio / 3672人閱讀

摘要:操作系統(tǒng),請自己嘗試目標(biāo)使用搭建擴(kuò)展開發(fā)調(diào)試環(huán)境調(diào)試目標(biāo)執(zhí)行程序腳本里使用擴(kuò)展里的函數(shù)等,代碼里面開始喚起單步調(diào)試,步驟簡潔開發(fā)工具能夠識別各種文件格式能處理好的引用現(xiàn)代提供的功能,搜索,跳轉(zhuǎn),終端,等背景調(diào)試比較繁瑣嘗試過從源碼編譯找

操作系統(tǒng):deepin(debain),ubuntu(請自己嘗試) 目標(biāo):使用qtcreator,搭建php擴(kuò)展開發(fā)、調(diào)試環(huán)境

調(diào)試目標(biāo):執(zhí)行php程序(php腳本里使用擴(kuò)展里的函數(shù)等),c代碼里面開始喚起單步調(diào)試,步驟簡潔

c開發(fā)工具:能夠識別各種文件格式(m4,makefile),能處理好include的引用

現(xiàn)代IDE提供的功能,搜索,跳轉(zhuǎn),終端,git等

背景: 

gdb調(diào)試比較繁瑣

嘗試過clion, eclipse, atom, vscode, qtcreator
 

從源碼編譯php
apt-get install build-essential

#找個自己喜歡的目錄(要有權(quán)限奧)

git clone https://github.com/php/php-src.git
cd php-src


./configure --help
./buildconf --force
./configure --disable-all --prefix=/usr --with-config-file-path=/etc/php.ini --with-config-file-scan-dir=/etc/php.d --enable-ctype --enable-json=shared
 make -j$(cat /proc/cpuinfo |grep "processor"|wc -l)
 ./sapi/cli/php -v
 make install
 php -v
 php -m
 php --ini
php -dextension=json.so -m
mkdir /etc/php.d
echo "extension=json.so" > /etc/php.d/json.ini
php -m
開發(fā)php擴(kuò)展,請參考擴(kuò)展開發(fā)文章 (sum)
cd ext
./ext_skel --extname=sum
cd sum

修改以下文件
config.m4

dnl $Id$
dnl config.m4 for extension sum

dnl Comments in this file start with the string "dnl".
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:
PHP_ARG_WITH(sum, for sum support,
[  --with-sum             Include sum support])
if test "$PHP_SUM" != "no"; then
  PHP_NEW_EXTENSION(sum, sum.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
fi

sum.c

PHP_FUNCTION(sum)
{
    zval *input;
    zval *item;
    int32_t total=0;
    HashPosition position;

    if (zend_parse_parameters(ZEND_NUM_ARGS(), "a", &input) == FAILURE) {
        return;
    }

    for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(input), &position);
      (item = zend_hash_get_current_data_ex(Z_ARRVAL_P(input), &position));
      zend_hash_move_forward_ex(Z_ARRVAL_P(input),&position)
     ){
        if(Z_TYPE_P(item) == IS_LONG){
            total += Z_LVAL_P(item);
        }else zend_throw_exception(NULL, "oh dear!", 0);
           
    }
    RETURN_LONG(total);
}
安裝擴(kuò)展
phpize
./configure
make
make install
echo "extension=sum.so" > /etc/php.d/sum.ini
查看擴(kuò)展功能

test.php


php test.php

會輸出 int(20)

配置qt creator開發(fā)環(huán)境

菜單欄:文件->新建文件或項目->導(dǎo)入現(xiàn)有項目

  

項目名稱:php-src, 位置為php源碼編譯目錄

默認(rèn)

默認(rèn)

構(gòu)建配置:

  

補(bǔ)充:  

  

清除步驟:  

  

解決擴(kuò)展引用頭文件問題,添加"."  

  

運(yùn)行配置:  

f5調(diào)試走起:  

約定

學(xué)習(xí)他人擴(kuò)展約定:
把別人的擴(kuò)展放到ext目錄下,按圖片修改下內(nèi)容,按以上步驟調(diào)試

參考

PHP Extension Development for Beginners with Joe Watkins
(https://www.youtube.com/watch...)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/23092.html

相關(guān)文章

  • 干貨 - 如何逆向解決QT程序漢化中亂碼問題

    摘要:作者逆向驛站微信公眾號逆向驛站知乎逆向驛站一款開發(fā)的國外軟件,大概率是沒有做中文支持的,所以你漢化中,不論怎么設(shè)置編碼都一定是亂碼。 作者:逆向驛站微信公眾號:逆向驛站知乎:逆向驛站showImg(https://segmentfault.com/img/bVbnE98?w=1100&h=731); 一款QT開發(fā)的國外軟件,大概率是沒有做中文支持的,所以你漢化中,不論怎么設(shè)置編碼都一定...

    smartlion 評論0 收藏0
  • 13 萬字 C 語言從入門到精通保姆級教程2021 年版 (建議收藏)

    摘要:友情提示先關(guān)注收藏,再查看,萬字保姆級語言從入門到精通教程。及大牛出天地開始有隨之乃有萬種語年英國劍橋大學(xué)推出了語言。 友情提示:先關(guān)注收藏,再查看,13 萬字保...

    zombieda 評論0 收藏0
  • hello zapi 項目準(zhǔn)備工作-CPP開發(fā)PHP之旅第一節(jié)

    摘要:原文地址在新手學(xué)堂里面,我們將從零基于開發(fā)一個簡單的擴(kuò)展,這個擴(kuò)展的名字叫做現(xiàn)在我們著手準(zhǔn)備開發(fā)需要的環(huán)境吧。 原文地址: http://www.zendapi.org/manual... 在新手學(xué)堂里面,我們將從零基于 zendAPI 開發(fā)一個簡單的 PHP 擴(kuò)展,這個擴(kuò)展的名字叫做 hellozapi , 現(xiàn)在我們著手準(zhǔn)備開發(fā)需要的環(huán)境吧。 demo 的項目庫地址 https://...

    khs1994 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<