精华内容
下载资源
问答
  • Forum Discuss in English: Kodi Community Forum: Project xbmc-addons-chinese Release Thread QQ Group for Developers: 253355963 How To Use Install Repository To install the repository, you need to ...
  • NodeJS Addons

    2019-09-14 07:12:14
    NodeJSAddons官方文档:http://nodejs.org/api/addons.html Windows下需要自己编译Node来得到lib 因为Node使用gyp所以还需要python2.6或2.7的环境,还要把VisulaStudio安...

    NodeJS Addons 官方文档:http://nodejs.org/api/addons.html


    Windows 下需要自己编译 Node 来得到 lib

    因为 Node 使用 gyp 所以还需要 python 2.6 或 2.7 的环境,还要把 Visula Studio 安装好

    NodeJS 编译很简单,花的时间也不长,下载源码包,使用里面的 vcbuild.bat 编译:

    vcbuild.bat release

    gyp 在 Windows 下编译时,会从注册表中得到 Visual Studio 的各个版本和目录,并自动选择一个来编译

    编译后如果没有得到 node.lib ,那再编译一次就可以得到 node.lib


    在编译 NodeJS Addons 时,需要使用 NodeJS 提供的工具来编译:node-gyp

    node-gyp 在 deps\npm\bin\node-gyp-bin\ 目录下

    代码写好后需要新建一个文件 binding.gyp 描述和配置这个模块,文件名必须是这个,内容如下:

    {
      "targets": [
        {
          "target_name": "hello",
                      
          "include_dirs": [
            "mmseg"
          ],
                
          "msvs_settings": {
            "VCLinkerTool": {
              "AdditionalLibraryDirectories": [
                "mmseg"
              ]
            }
          },
                      
          "sources": [ "hello.cpp" ]
        }
      ]
    }


    这个文件中说明了模块名,代码文件,额外的头文件目录,额外的库目录

    然后使用 node-gyp 生成项目文件并编译:

    node-gyp configure build

    如果同时安装了 VS2010 和 VS2012 那 gyp 会使用 VS2010 来编译

    如果需要用 VS2012 编译,就只需 configure ,然后用 VS2012 打开项目文件自己编译



    NodeJS Addons 的代码结构:

    #pragma once
    #include <node.h>
          
    using namespace v8;
          
    class Hello : public node::ObjectWrap    //继承于这个类会方便一些
    {
    public:
        static void Init(Handle<Object> target);    //导出对象时需要这个方法
          
    private:
        Hello():m_count(0) {}
        ~Hello() {}
          
        static Handle<Value> New(const Arguments& args);    //JS 中构造对象时,就调用这个方法
        static Handle<Value> Test(const Arguments& args);    //调用 JS 对象的 Test() 方法时,就调用这个函数
          
        int m_count;    //这是 C++ 对象中用的
    };


    实现代码:

    #include <sstream>
          
    #include "Hello.h"
          
    using namespace std;
          
    void Hello::Init(Handle<Object> target)
    {
        //创建一个 JS 函数原型
        Local<FunctionTemplate> tpl = FunctionTemplate::New(New);
        //JS 类型名称
        tpl->SetClassName(String::NewSymbol("Hello"));
        tpl->InstanceTemplate()->SetInternalFieldCount(1);
        //一个成员方法
        tpl->PrototypeTemplate()->Set(
            String::NewSymbol("test"), 
            FunctionTemplate::New(Test)->GetFunction()
        );
        //添加一个符号,并关联这个对象
        target->Set(
            String::NewSymbol("Hello"),
            Persistent<Function>::New(tpl->GetFunction())
        );
    }
          
    Handle<Value> Hello::New(const Arguments& args)
    {
        HandleScope scope;    //有 JS 的操作时,Scope 是必须有的
        Hello* obj = new Hello();    //创建C++用的对象
        obj->Wrap(args.This());
        return args.This();
    }
          
    Handle<Value> Hello::Test(const Arguments& args)
    {
        HandleScope scope;
        std::stringstream sout;
          
        Hello* self = ObjectWrap::Unwrap<Hello>(args.This()); 
        sout<<"Hello["<<self->m_count++<<"]";
          
        Local<String> result = String::New(sout.str().c_str());
        return scope.Close(result);    //返回字符串
    }
         
    //导出 addons object
    void Init(Handle<Object> target)
    {
        //在这里导出对象,可以一次导出很多对象
        Hello::Init(target);
    }
         
    NODE_MODULE(hello, Init)

    在 Node 中使用:

    var Addons = require('./hello');
        
    var hello = new Addons.Hello();
    console.log(hello.test());


    V8 中的 String:可以使用 ASCII 或 UTF-8 的字符串构造 String,String 会自己判断并按格式去够着一个JS用的字符串。


    V8 中有三个智能指针:Handle、Local、Persistent

    Local 继承于 Handle ,改了构造函数,并添加了一个 New 方法,但和 Handle 没什么区别,需要和 HandleScope 一起使用

    Persistent 则是持久性指针,可以在函数间传递对象,手动释放资源


    转载于:https://my.oschina.net/u/174780/blog/363489

    展开全文
  • addons-源码

    2021-03-18 01:56:16
    Smarthome / J附加组件 ...可以在下载RepoManager的最新版本。 发展 SmartHome / J附加组件是 .jar文件。关于开发,还使用了代码样式以及与openHAB内适用(或使用)相同的规则和工具。 祝您编码愉快!
  • My Firefox Addons

    2019-03-01 16:48:57
    firefox common addons 博文链接:https://rossbu.iteye.com/blog/243473
  • fastadmin-addons.zip

    2020-10-11 08:19:58
    fastadmin-addons是fastadmin的插件化管理类库
  • The maintainers of TensorFlow Addons can be found in the CODEOWNERS file of the repo. This file is parsed and pull requests will automatically tag the owners using a bot. If you would like to maintain...
  • PSOBBMod-Addons-源码

    2021-05-29 01:39:46
    将您要使用的每个插件目录复制到 PSOBB 文件夹中的 ./addons 目录中。 插件 我的所有其他插件都需要这个插件,它们包含不同插件之间共享的辅助函数。 如果您正在开发插件,请随意使用它。 这个插件的配置可以通过按...
  • keystone-addons-源码

    2021-03-06 07:38:20
    :允许用户将列表中的选定项目下载到CSV文件。 安装 cd git submodule add https://github.com/savvystack/keystone-addons 注意:我在从该项目构建NPM软件包时遇到了一些麻烦。 Keystone独特的将客户端代码与...
  • xtables-addons-2.6.tar

    2014-11-04 10:21:39
    之前编译openwrt固件时一直下载不了这个代码,后来费劲下载下来啦,希望帮到需要的朋友。 Xtables-addons 是一个代替 Linux 内核和 iptables 旧的 patch-o-matic 包,无需对内核源码进行补丁,无需重编译内核。
  • Kubernetes addons Heapster

    2017-12-11 14:51:46
    部署只需要下载4个文件,并创建他们就可以了。当然前提是你有镜像。 $ kubectl create -f deploy/kube-config/influxdb/ $ kubectl create -f deploy/kube-config/rbac/heapster-rbac.yaml Running...

    一、介绍

    Heapster是一个集群范围的监视和事件数据聚合器。它本身支持Kubernetes,可以在所有Kubernetes设置上运行。Heapster作为群集中的一个群集运行,类似于其他任何Kubernetes应用程序的运行方式。

    InfluxDB是一个用Go编写的开源数据库,专门用于处理具有高可用性和高性能要求的时间序列数据。它公开了一个易于使用的API来写入和获取时间序列数据。Heapster设置为在大多数Kubernetes集群上默认使用InfluxDB作为存储后端。

    Grafana是我们的监控设置中的数据可视化组件。它在Kubernetes集群中是可用的。默认仪表板显示集群的资源使用情况以及其内部的窗格。这个仪表板可以很容易地定制和扩展。

    官方Github

    kubernetes 1.8.3

    heapster-amd64:v1.4.2

    influxdb-amd64:v1.3.3

    grafana-amd64:v4.4.3

    二、部署

    部署只需要下载4个文件,并创建他们就可以了。当然前提是你有镜像。

    $ kubectl create -f deploy/kube-config/influxdb/
    $ kubectl create -f deploy/kube-config/rbac/heapster-rbac.yaml
    

    Running后稍等一会登录Dashboard

    2017-12-10 15-54-48屏幕截图.png

    CPU和MEMORY显示就代表heapster运行成功

    三、Grafana

    Url可以通过kubectl cluster-info查询

    [root@node1 ~]# kubectl cluster-info 
    Kubernetes master is running at https://192.168.1.121:6443
    dnsmasq is running at https://192.168.1.121:6443/api/v1/namespaces/kube-system/services/dnsmasq/proxy
    Heapster is running at https://192.168.1.121:6443/api/v1/namespaces/kube-system/services/heapster/proxy
    KubeDNS is running at https://192.168.1.121:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy
    kubernetes-dashboard is running at https://192.168.1.121:6443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
    monitoring-grafana is running at https://192.168.1.121:6443/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
    monitoring-influxdb is running at https://192.168.1.121:6443/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy
    
    To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
    


    https://192.168.1.121:6443/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana/
    

    2017-12-10 20-04-52屏幕截图.png2017-12-10 20-05-11屏幕截图.png

    展开全文
  • 科迪 Kodi Addons存储库
  • repository.kodi-chinese-addons repository.kodi-chinese-addons xbmc /中文插件的kodi存储库
  • smbldap-tools addons-开源

    2021-05-06 12:05:34
    smbldap-tools插件是smbldap-tools的附加工具(http://gna.org/projects/smbldap-tools/)。 最新版本支持smbldap-tools 0.9.6。 查看更多:http://smbldap-addons.sourceforge.net/
  • ext-addons-7.0.0-trial.zip

    2019-10-15 10:17:50
    Sencha EXTJS7.0 addons企业扩展包 ,直接解压到自己项目的packages文件夹下
  • 某些时候这里会有很多插件!
  • 经过我的研究,其实,编译C/C++ addons并不需要下载使用官方所说的node-gyp程序。 不管是使用C还是C++去编译node的N-API都不需要,只要有 GN + Ninja就足够了。 别忘了,node.js, gyp, gn , ninja都是Google的...

    经过我的研究,其实,编译C/C++ addons并不需要下载使用官方所说的node-gyp程序。

    不管是使用C还是C++去编译node的N-API都不需要,只要有 GN + Ninja就足够了。

    别忘了,node.js, gyp, gn , ninja都是Google的一套家伙事儿。所以......

    Go。 不擅长排版,我就一路写下去了......

    node.js和底层C/C++通讯,采用addons的方式, N-API就可以完成这样的任务,这样就不用依赖V8,这里说的不依赖并不是指不使用V8的东西了,毕竟node.js是靠V8运行的。 N-API可以兼容不同的V8版本, 你要是直接用 V8的函数也可以完成js和C的通信,那你就要包含#include <v8.h>这样的头文件。官网上有说明,可以去查看查看,我就不多说了。

    反正记住node.js和 C/C++层通信你就用N-API就行。

    先说纯C写的N-API, 因为 C++写N-API的时候需要下载node-addon-api库,然后写C++文件的使用包含 napi.h头文件就行了。

    如何不用node-gyp,只是用 gn + ninja编译插件?

    插件是一个二进制文件,最重要的是以 .node结尾。

    你只需要使用 gn + ninja编译出来一个 shared_library 库,然后把这个库改成以.node后缀即可。

    比如你生成的库是 libcaddon.so, 那么你重新命名一下以.node后缀, 比如 caddon.node即可。

    使用的时候和加载其它库一样, 如果你的caddon.node在当前目录, 你可以在你的JS文件中  const caddon = require("caddon");

    如果你的gn学的很好, 那你应该知道怎么用gn的规则去重命名你的 so文件,如果你不知道,我可以提供一种方式。

    # This is my BUILD.gn file.
    # It should be declared before using.
    # So it must be better declared at the top in the build file.
    declare_args() {
        addon_use_shared = 1
    }
    
    # 这里可以控制是编译动态库还是静态库
    if (addon_use_shared == 1) {
        socket_lib_type = "shared_library"
    } else {
        socket_lib_type = "static_library"
    }
    
    action_foreach("node_action") {
      # This action dependences on dynamic library.
      deps = [
        ":CAddon",  # 这个就是依赖的C库,会生成 libCAddon.so
      ]
      sources = [
        "$root_out_dir/libCAddon.so",
      ]
      outputs = [
        "$root_out_dir/{{source_name_part}}.node",
      ]
      script = "gen_node_addons.py"  # This is my python to rename so files.
      args = [
        rebase_path("$root_out_dir/{{source_name_part}}.so"), # argu 1 for python
        "-o",  # argu 2 for python
        rebase_path("$root_build_dir/../webpage/addons") # 输出.node后缀文件到哪里,你自己可以改路径
      ]
    }
    
    config("setting_for_this") {
      # 这是编译so需要的头文件路径,比如 napi.h
      include_dirs = [
        "//",
        "//third_party/lib_bins/nodejs/include",
        "//third_party/lib_bins/nodejs/include/node",
        "//third_party/Nodejs/addons/node_modules/node-addon-api",
      ]
    }
    
    # This is for C N-API addon
    target(socket_lib_type, "CAddon") {
      sources = [
        "c/addon.c",
        "c/addon_node.c",
        "c/addon_wrap.c",
        "c/CNodeList.c",
        "c/CNodeList.h",
        "c/addon_wrap.h",
        "c/addon.h",
      ]
    
      public_configs = [
        ":setting_for_this",
      ]
    }
    
    # 这个是一个空的可执行程序,在addon_main.cc里面写个main函数就行了。
    # 这样是为了想添加新的库或者改变库名的时候就不用修改别的地方了,只修改这文件就可以。
    executable("addon_mock") {
      sources = [
        "addon_main.cc",
      ]
      deps = [
        ":node_action",
      ]
    
    }
    
    #然后就是 gen_node_addons.py脚本,只是把action_foreach的args得到之后修改文件的名字,
    #擅长pyhon的自己实现就行,我是门外汉。
    import os
    import sys
    
    node_addon_save_path = ""
    argc = len(sys.argv)
    i = 1
    
    while i < argc:
        if sys.argv[i] == "-o":
            i += 1
            node_addon_save_path = sys.argv[i]
            break
        else:
            i += 1
    
    if os.path.exists(node_addon_save_path):
        i = 1
        while i < argc:
            if sys.argv[i] == "-o":
                i += 2
                continue
            elif os.path.exists(sys.argv[i]):
                # move libs to node dir
                filename = os.path.split(sys.argv[i])[1]
                filename = filename.split('lib')[1].split('.so')[0]
                src = sys.argv[i]
                dest = node_addon_save_path+'/' + filename + '.node'
                print("copy ","[",src,"] -> [",dest,"]")
                os.rename(src, dest)
                i += 1
            else:
                print(sys.argv[i]," no exist")
                i += 1
    else:
        print(node_addon_save_path ," No this directory")
    

    这样就可以了。 C++你就再写一个target(socket_lib_type, "CCAddon") { } ,然后放到action_foreach的deps里面就行了。

    这样,完全不使用node-gyp来编译 C/C++ addons就完成了。

     

    展开全文
  • 下载zip并将其内容提取到chorus/addons文件夹中。 或者,从绿色的“代码”按钮下载整个存储库作为存档,然后提取所需的附加文件夹。 上载中 如果您开发了一个加载项并希望将其公开,请确保添加了必需的信息(请...
  • vim-addons插件的使用

    千次阅读 2015-04-07 21:15:53
    1、管理vim插件——vim-addons 通过vim-addons,我们可以管理vim插件。我们在sudo apt-get install vim vim-scripts vim-doc时,一般会自动安装上vim-addons。若未安装可通过sudo apt-get install vim-addon-...

    1、管理vim插件——vim-addons
    通过vim-addons,我们可以管理vim插件。我们在sudo apt-get install vim vim-scripts vim-doc时,一般会自动安装上vim-addons。若未安装可通过sudo apt-get install vim-addon-manager手动安装。安装完成后,就可以用vim-addons管理vim插件了。

    系统中已有的vim-scripts中包含的插件及其状态:

    lingd@ubuntu:~$ vim-addons status

    Name User Status System Status

    align removed removed
    alternate removed removed
    bufexplorer removed removed
    calendar removed removed
    closetag removed removed
    colors sampler pack removed removed
    cvsmenu removed removed
    debPlugin removed removed
    detectindent removed removed
    doxygen-toolkit removed removed
    editexisting removed removed
    enhanced-commentify removed removed
    gnupg removed removed
    info removed removed
    justify removed removed
    lbdbq removed removed
    markdown-syntax removed removed
    matchit removed removed
    minibufexplorer installed removed
    nerd-commenter removed removed
    omnicppcomplete installed removed
    po removed removed
    project installed removed
    python-indent removed removed
    secure-modelines removed removed
    snippetsEmu removed removed
    sokoban removed removed
    supertab removed removed
    surround removed removed
    taglist installed removed
    tetris removed removed
    utl removed removed
    vcscommand removed removed
    vimplate removed removed
    whatdomain removed removed
    winmanager removed removed
    xmledit removed removed
    上面我们介绍了如何独立于系统配置文件之外,建立自己的Vim配置文件。当我们自己下载安装Vim插件的时候,也可以另外建立目录,放置我们自己的插件。这个目录一般为/home/user/.vim,另外还需要建立一个插件子目录,一个插件文档子目录,以上的可以进入/home/user目录下通过下面的命令执行:
    lingd@ubuntu:~mkdir.vimlingd@ubuntu:  cd .vim
    lingd@ubuntu:~/.vimmkdirpluginlingd@ubuntu: /.vim mkdir doc

    vim官方插件的安装,xxxx是要安装的插件名,以status中显示的名称为准。安装插件xxxx时使用以下命令(前提是在目录/home/user/.vim/下建立好了plugin和doc两个文件夹)

    vim-addons install xxxx
    关于vim-addons命令的详细用法,可以通过“man vim-addons”查看其帮助文档

    2、vim自动补全——OmniCppComplete
    vim的自动补全功能可通过其插件OmniCppComplete实现。
    安装OmniCppComplete
    lingd@ubuntu:~$ vim-addons install omnicppcomplete
    配置OmniCppComplete
    在vim配置文件/home/user/.vimrc中加入如下的配置:

    “– omnicppcomplete setting –
    ” 按下F3自动补全代码,注意该映射语句后不能有其他字符,包括tab;否则按下F3会自动补全一些乱码
    imap
    ” 按下F2根据头文件内关键字补全
    imap
    set completeopt=menu,menuone ” 关掉智能补全时的预览窗口
    let OmniCpp_MayCompleteDot = 1 ” autocomplete with .
    let OmniCpp_MayCompleteArrow = 1 ” autocomplete with ->
    let OmniCpp_MayCompleteScope = 1 ” autocomplete with ::
    let OmniCpp_SelectFirstItem = 2 ” select first item (but don’t insert)
    let OmniCpp_NamespaceSearch = 2 ” search namespaces in this and included files
    let OmniCpp_ShowPrototypeInAbbr = 1 ” show function prototype in popup window
    let OmniCpp_GlobalScopeSearch=1 ” enable the global scope search
    let OmniCpp_DisplayMode=1 ” Class scope completion mode: always show all members
    “let OmniCpp_DefaultNamespaces=[“std”]
    let OmniCpp_ShowScopeInAbbr=1 ” show scope in abbreviation and remove the last column
    let OmniCpp_ShowAccess=1

    (前几行就是提供了C++中的./->/::等操作符的提示和自动完成)。
    OmniCppComplete是基于ctags数据库即tags文件实现的(基于ctags生成的索引信息来实现自动补全的),所以在ctags -R生成tags时还需要一些额外的选项,这样生成的tags文件才能与OmniCppComplete配合运作。使用下列命令生成tags文件,就可以与OmniCppComplete配合运作:
    ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .
    –c++-kinds=+p : 为C++文件增加函数原型的标签
    –fields=+iaS : 在标签文件中加入继承信息(i)、类成员的访问控制信息(a)、以及函数的指纹(S)
    –extra=+q : 为标签增加类修饰符。注意,如果没有此选项,将不能对类成员补全

    vim自动补全功能的测试

    为了测试自动补全功能,我们先下载C++一份C++标准库的源代码。

    lingd@ubuntu:~$ sudo apt-get install build-essential

    然后在/usr/include/c++下就可以找到标准库的头文件了。

    lingd@ubuntu:~cd/usr/include/c++lingd@ubuntu:/usr/include/c++ ls
    4.4 4.4.3

    在此文件夹下生成能与OmniCppComplete配合运作的tags文件

    lingd@ubuntu:/usr/include/c++ctagsRc++kinds=+pfields=+iaSextra=+q.lingd@ubuntu:/usr/include/c++ ls
    4.4 4.4.3 tags

    在vim的配置文件中如下内容,然后在编程的时候就可以使用自动补全功能了。

    lingd@ubuntu:/usr/include/c++$ vi ~/.vimrc

    set tags+=/usr/include/c++/tags

    用vi打开前面的Test.c文件,在printf(“Hello World!\n”)下一行中,输入pri,然后按下Ctrl+X Ctrl+O,此时vi会弹出一个窗口,所有以pri开头的tag都会出现在这个窗口中,printf就出现在第6行中

    lingd@ubuntu:~cd lingd@ubuntu:  vim Test.c

    展开全文
  • 在odoo第三方应用商店下载了一个模块,om_hospital,然后保存在/root/odoo-dev/odoo/local-addons/目录下 在cfg文件的addons_path 这一行 原本是:addons_path = /root/odoo-dev/odoo/...
  • odoo-addons odoo的各种插件 测试添加自述文件
  • asterisk-addons-1.6.1-current.tar.gzasterisk-addons-1.6.1-current.tar.gzasterisk-addons-1.6.1-current.tar.gz
  • tensorflow_addons(tfa)安装与使用

    千次阅读 2020-07-03 21:39:33
    tensorflow将tf.contrib移除,许多功能转移到了第三方库,今天介绍其中的tensorflow_addons(tfa)的安装与使用方法: tfa安装: pip install tensorflow-addons 需要注意tfa版本与tf版本对应,官方github上列出了...
  • 自定义NodeJS-C++ Addons使用说明 Windows 流程 Step.01 编译环境搭建 参照Github-nodejs/node-gyp使用选择: windows-build-tools 注意,需要使用管理员权限打开cmd等 Visual Studio Build Tools 或下载完整的...
  • Ultimate-Member-WP-plugin-addons
  • tensorflow_addons提供了tensorflow2核心库之外的功能API,比如说tensorflow1.7版本中的某写功能在TensorFlow2中确实,就有可能在tensorflow_addons中找到。 在ARM64架构上tensorflow_...下载源码 编译安装 测试 ...
  • 作曲家需要xiaoyaor / think-addons 配置 生成配置 系统安装后会自动在config目录中生成addons.php的配置文件,如果系统未生成可在命令行执行 php think addons:config 快速生成配置文件 公共配置 'addons' =>[ //...
  • 我们都知道,nodejs时基于google的v8引擎的,v8引擎呢,是用C或者说C++写的,各种第三方模块(大多数)也是用C++写的,原因很简单,效率高,而且,很多第三方模块原本就有C++版本,只要用addons包装一下,就可以在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,741
精华内容 4,696
关键字:

下载addons