bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

如何為iotjs開(kāi)發(fā)原生模塊

這篇文章主要介紹“ 如何為iotjs開(kāi)發(fā)原生模塊”,在日常操作中,相信很多人在 如何為iotjs開(kāi)發(fā)原生模塊問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答” 如何為iotjs開(kāi)發(fā)原生模塊”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、揭陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)商城網(wǎng)站定制開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為揭陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

為 iotjs 開(kāi)發(fā)原生模塊

iotjs 是三星開(kāi)源的 javascript 物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái)。它為 javascript 應(yīng)用程序提供了訪問(wèn)硬件、網(wǎng)絡(luò)、文件系統(tǒng)和異步化的能力,功能類(lèi)似于 nodejs,但無(wú)論是代碼體積還是內(nèi)存需求,iotjs 都要小很多,是用 javascript 開(kāi)發(fā) iot 設(shè)備應(yīng)用程序的首選。

AWTK 全稱 Toolkit AnyWhere,是 ZLG 開(kāi)發(fā)的開(kāi)源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機(jī)和 PC 打造的通用 GUI 引擎,為用戶提供一個(gè)功能強(qiáng)大、高效可靠、簡(jiǎn)單易用、可輕松做出炫酷效果的 GUI 引擎。

一、修改模塊的名稱

如果模塊的名稱使用 mymodule 是沒(méi)有問(wèn)題的,但是 mymodule 是一個(gè)無(wú)意義的名稱,無(wú)法表達(dá)實(shí)際模塊的真實(shí)功能。我這里需要把模塊改名為 awtk,可以按下列方式來(lái)做:

  • 目錄名使用 awtk-module

mkdir awtk-module
  • 將 C 代碼的源文件改名為 awtk_module.c,并將初始化函數(shù)改名 InitAwtkNativeModule。

  • 創(chuàng)建 awtk-module/modules.json

{
  "modules": {
    "awtk": {
      "native_files": ["awtk_module.c"],
      "init": "InitAwtkNativeModule",
      "external_libs":["awtk-jerryscript", "jerryscript", "awtk", "assets", "glad", "gpinyin", "linebreak", "nanovg"], 
      "platforms": {
        "linux": {
          "external_libs":["SDL2", "gtk-3", "gdk-3", "sndio", "Xext", "X11", "stdc++", "dl", "m"]
        }   
      }   
    }
  }
}
  • 修改編譯腳本參數(shù)

tools/build.py --external-modules=awtk-module --cmake-param=-DENABLE_MODULE_AWTK=ON

ENABLE_MODULE_ 一定要寫(xiě)實(shí)際模塊的名稱,如果忘記將 MYMODULE 修改成實(shí)際模塊的名稱,出現(xiàn)的錯(cuò)誤讓你完全不知道是什么情況。

二、編譯參數(shù)

自己的模塊免不了使用外部庫(kù),但是 modules.json 里可以指定庫(kù)的名稱,卻不能指定庫(kù)的路徑和頭文件的路徑。做了嘗試始終沒(méi)有成功,后來(lái)只好自己寫(xiě)了一個(gè) cmake 文件,在 iotjs 的 CMakeLists.txt 引用了。

awtk.cmake 的內(nèi)容如下:

GET_FILENAME_COMPONENT(PROJ_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE)

SET(AWTK_ROOT ${PROJ_ROOT}/awtk)
SET(AWTK_JS_ROOT ${PROJ_ROOT}/awtk-js)
SET(APP_ASSETS_ROOT ${AWTK_ROOT}/demos)
SET(AWTK_JS_FILE ${AWTK_JS_ROOT}/src/awtk.js)

MESSAGE("AWTK_ROOT=${AWTK_ROOT}")
MESSAGE("AWTK_JS_ROOT=${AWTK_JS_ROOT}")
MESSAGE("AWTK_JS_ROOT=${CMAKE_CURRENT_LIST_DIR}")

SET( CMAKE_VERBOSE_MAKEFILE ON )
ADD_COMPILE_OPTIONS("-DAWTK_JS_FILE=\"${AWTK_JS_FILE}\"")
ADD_COMPILE_OPTIONS("-DAPP_ASSETS_ROOT=\"${APP_ASSETS_ROOT}\"")

LINK_DIRECTORIES("${AWTK_ROOT}/lib" "${AWTK_JS_ROOT}/lib")
INCLUDE_DIRECTORIES("${AWTK_ROOT}/src/" "${AWTK_ROOT}/src/ext_widgets/" "${AWTK_JS_ROOT}/src/jerryscript")

使用下面這行代碼開(kāi)啟 verbose 模式,可以看到大量調(diào)試信息,有助于快速定位問(wèn)題所在:

SET( CMAKE_VERBOSE_MAKEFILE ON )

然后在 CMakeLists.txt 里引用:

include(../awtk-iotjs/awtk-module/awtk.cmake)
include(cmake/iotjs.cmake)

一定要放在 iotjs.cmake 之前引用,否則無(wú)效。

三、放在獨(dú)立的目錄

將模塊放在獨(dú)立的目錄中,管理起來(lái)方便一些,awtk-iotjs 是為 iotjs 寫(xiě)的模塊,它依賴與 awtk 和 awtk-js,將在幾個(gè)模塊放在同級(jí)的目錄。

  • awtk

  • awtk-js

  • iotjs

  • awtk-iotjs

編譯腳本改為:

${iotjs_ROOT}/tools/build.py --external-modules=${CWD}/awtk-module --cmake-param=-DENABLE_MODULE_AWTK=ON

運(yùn)行腳本改為:

if [ "$1" == "" ]; then
  JS_FILE="demos/button.js"
else
  JS_FILE="$1"
fi

${iotjs_ROOT}/build/x86_64-linux/debug/bin/iotjs "$JS_FILE"

到此,關(guān)于“ 如何為iotjs開(kāi)發(fā)原生模塊”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

分享題目:如何為iotjs開(kāi)發(fā)原生模塊
標(biāo)題網(wǎng)址:http://vcdvsql.cn/article18/iighdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)搜索引擎優(yōu)化品牌網(wǎng)站設(shè)計(jì)標(biāo)簽優(yōu)化商城網(wǎng)站微信公眾號(hào)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)