xs

    5熱度

    1回答

    我幾乎不知道C++,所以沒有什麼幫助,而且我的XS也沒有太大改進。我爲C++庫創建了一個XS接口,幾乎所有的方法都在工作,除了一個之外。 Perl中的方法應該是這樣的: $return_data = $obj->readPath($path); 的方法被定義爲這個.h文件: int readPath(const char* path, char* &buffer, bool flag=true

    0熱度

    2回答

    我有關於Linux上鍊接的以下問題: 假設我有一個使用Qt的Foo類。要構建這個類,我必須使用qmake來生成Makefile。 後來我想用這個類Foo作爲Perl模塊,它是一個共享庫。但是,爲了構建它,我必須使用Perl的MakeMaker來生成它自己的Makefile。 我現在這樣做的方式是將類Foo創建爲靜態庫,並在構建Perl模塊的共享庫時將其鏈接到Foo的靜態庫。 問題是,當構建Perl

    2熱度

    1回答

    我正在嘗試爲一個序列化/反序列化庫編寫XS膠水代碼,它能夠處理任何提供接口的任何東西。我希望能夠使用僞文件句柄,我與 open $reader, '<', \$in; open $writer, '>', \$out; 所以使用FILE*映射似乎並沒有下班。由於我沒有發現任何好的文檔,我打得周圍,得出了以下XS片段: void write_buf (fh, string); INPUT:

    11熱度

    2回答

    我正在研究一些需要序列化Perl正則表達式的代碼,包括任何正則表達式標誌。只支持一部分標誌,所以我需要檢測像/u這樣的不受支持的標誌是否在正則表達式對象中。 代碼的當前版本做到這一點: static void serialize_regex_flags(buffer *buf, SV *sv) { char flags[] = {0,0,0,0,0,0}; unsigned i

    8熱度

    1回答

    我更喜歡XS初學者,我正在考慮更改現有的使用15年以上底層C庫的XS模塊(實際上,該模塊基本上只是粘合到這個庫)。問題是,我想能夠使用PerlIO的串掛羊頭賣狗肉,如: open($fh, '<', \$string); ,然後通過$fh到XS膠圖書館在期待FILE。問題是,XS有: int _parse (entry_ref, filename, file, preserve=FALSE)

    7熱度

    2回答

    我想寫暴露片庫,以 Perl代碼爲可寫入流接口一些XS碼。下面 get_stream功能應該是 準備並返回一個PerlIO的對象的構造。我想我只需要 Write和Close方法,所以我留下了所有其他功能插槽的空白。 typedef struct { struct _PerlIO base; mylib_context* ctx; } PerlIOmylib; /* [..

    0熱度

    2回答

    我試圖從一些XS碼返回使用intptr_t類型: intptr_t my_func(self) myObjPtr self CODE: RETVAL = (intptr_t) self; OUTPUT: RETVAL 我的類型映射沒有關於intptr_t什麼,所以當然dmake失敗Could not find a typemap for

    3熱度

    1回答

    我試圖做一個XS相當於此: package RefTestPP; use strict; use warnings; sub new { my ($class, $self) = (@_, {}); return bless $self, $class; } 1; 這種構造的應該是「autovivify」這是當被稱爲RefTestPP->new()基地,或使用

    6熱度

    2回答

    糾正我,如果我錯了,但基於XS和Dynaloader的模塊是那些使用C/C++共享對象(.so)和哪些不是PP(純Perl)? 現在假設我有一臺機器,它沒有任何網絡連接(Solaris 10),並且我希望例如安裝Crypt::OpenSSL::AES(基於XS的模塊),將AES.pm文件複製到@INC中的相關路徑不會做任何好事,因爲我的系統沒有安裝libssl。 我的第二個也是最重要的問題是,我沒

    4熱度

    3回答

    我正在開發一個Perl模塊,它有很多XS代碼並且還使用Dist::Zilla來管理打包。什麼是有效測試事物的最佳方式?我知道dzil test,但是這很慢,因爲它每次調用時都會執行完整的編譯/編譯/測試循環。 只更新自上次測試以來需要更新的部件以及只能運行某些測試腳本而不是全部測試腳本。任何人都有他們喜歡的解決方案?