国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
linux下appweb+ejscript+netsnmp開發(fā)web應(yīng)用

1.環(huán)境搭建
1.1.安裝appweb4.3.5
    http://appwebserver.org/products/appweb/doc-4/guide/appweb/source/bit.html
    注意:
          1.默認(rèn)情況下appweb下的ejscript接口是不啟用的,可在appweb的解壓目錄下配置:
             ./configure --with ejscript
             安裝完成后,在/etc/appweb下運(yùn)行:
             sudo appweb -v compile
             在瀏覽器中輸入:http://localhost即可瀏覽默認(rèn)界面(appweb默認(rèn)是以服務(wù)的方式啟動)
           2.appweb自帶的ejscript只有ejs和ejsc命令,如果相對ejscript進(jìn)行擴(kuò)展,需要安裝ejscript并將相關(guān)庫文件復(fù)制到appweb庫目錄下
1.2安裝ejscript2.3.2
    http://ejscript.org/products/ejs/doc-2/guide/ejs/source/bit.html
    ejs有兩種部署方式:
    1.內(nèi)置的web server
    2.部署到嵌入式web服務(wù)器中,如appweb

1.3安裝net-snmp
http://hi.baidu.com/bsbgong/item/2c0dff5cffbf5f08e6c4a5d4
1.4配置appweb
安裝好之后需要一些配置,才能使appweb正確運(yùn)行并處理ejscript應(yīng)用
    1.把ejscript的一些庫(*.so、*.mod文件)鏈接到[appweb安裝目錄]/bin下,命令如下:
          sudo ln -s [源文件絕對路徑] [appweb安裝目錄]/[源文件名]
         如:我的appweb安裝目錄為/usr/local/lib/appweb/4.3.5/,ejscript安裝路徑是/usr/local/lib/ejs/2.3.2/
          sudo ln -s /usr/local/lib/ejs/2.3.2/bin/ejs.web.mod /usr/local/lib/appweb/4.3.5/bin/ejs.web.mod
          注意:所有路徑最好都用絕對路徑,否則編譯時可能會報:符號鏈接層數(shù)過多
    2.需要連接的庫名稱: ejs.mod、libejs.so、ejs.web.mod、libejs.web.so、ejs.template.mod ,可根據(jù)需要添加其他庫,另外,自己開發(fā)的擴(kuò)展的ejs庫文件也要復(fù)制或鏈接到appweb的安裝目錄的bin目錄下
    3.appweb的庫文件搜索路徑保存在App.searchPath屬性中
1.5開發(fā)
1.5.1ejs示例
官方的安裝包中的/samples下有各種簡單擴(kuò)展示例,但例子中也有一些小問題,編譯或運(yùn)行不能通過,需要自己調(diào)整一下??蓞⒖计渲袑odule擴(kuò)展的部分
      ejs-2/samples/c/nclass包中
1.綁定C方法到ejs方法

    //360文檔庫不能上傳文檔啊
2.EJS通過C語言擴(kuò)展SNMP協(xié)議接口
    //360文檔庫不能上傳文檔啊
3.EJS擴(kuò)展開發(fā)流程
a).編寫A.es接口文件
b).用ejsc A.es命令編譯成A.mod文件
c).用ejsmod --cslots A.mod命令生成C語言頭文件
d).用C語言編寫A.es文件的C語言實現(xiàn)類A.c,詳細(xì)可參考1和2中的示例代碼,其中必須實現(xiàn)的方法是
      create、getProperty、setProperty、cloneClassName(className為A.es中定義的class類名)、getPropertyCount、
      getPropertyName、lookupProperty、constructor、ejsDefineSnmpClientType
e).用cc -shared -g -o libA.so A.c -lejs -lnetsnmp編譯成庫文件,其中-lejs,-lnetsnmp為編譯時需要鏈接的庫文件,不是必須的,只有A.c文件中引用了相關(guān)庫文件內(nèi)容才需要;
 f).編寫測試用的Test.es文件,可通過 require A或者use module A命令,在Test.es中使用A.es中定義的接口或類
g).在命令行輸入 ejs Test.es查看測試代碼

1.5.2ejscript web應(yīng)用開發(fā)
    ejscript有3種web開發(fā)方式,本文中使用的是使用ejscript命令自動創(chuàng)建的mvc應(yīng)用
    1.創(chuàng)建web應(yīng)用,隨便選擇一個路徑,如/usr/workspace/下,運(yùn)行命令
       mvc generate app blog
       blog就是要創(chuàng)建的項目名
    2.發(fā)布ejscript有兩種方式
       a)使用ejscript內(nèi)置的web server,在項目根目錄下(本文為/user/workspace/blog)執(zhí)行:
             mvc run
             該命令是使用ejscript內(nèi)置web server發(fā)布應(yīng)用;默認(rèn)可在瀏覽器輸入:http://localhost:4000來訪問剛剛發(fā)布的項目;可通過項目根目錄下的ejsrc文件對該項目進(jìn)行配置;
       b)使用嵌入式服務(wù)器發(fā)布,本文以appweb為例。appweb發(fā)布ejscript項目有三種方式:
             》EjsAlias命令
             》Route定位塊
             》VirtualHost虛擬托管
        具體參看官方的幫助文檔;
2.問題總結(jié)
2.1問題:部署到appweb上后,啟動appweb,訪問http://localhost/blog時,appweb不能轉(zhuǎn)發(fā)到ejscript模塊
   原因:appweb安裝時未配置ejscript模塊,導(dǎo)致啟動時未加載ejscript相關(guān)模塊
   解決:參考1.2ejscript安裝
2.2問題:訪問http://localhost/blog時,報can not find required component:“controllers/Base.es”異常,但查看該目錄下文件確實存在;
   原因:在項目根目錄下的ejsrc文件中未配置該目錄;
   解決:在ejsrc下的dirs的定義中加入目錄
   dirs: {
        cache: "cache",
        db: "db",
        migrations: "db/migrations",
        layouts: "layouts",
        src: "src",
        static: "static",
        views: "views",
        controllers: "controllers",
    },
2.3問題:Request Error for "/" :appweb: Error: Cannot create module file "../../usr/workspace/blog/cache/App.mod"
   原因:可能有兩個:
            a)可能是目錄../../usr/workspace/blog/cache/沒有讀寫權(quán)限;
            b)可能是../../usr/workspace/blog/cache/目錄下已經(jīng)存在App.mod文件了
   解決:
            a)sudo chmod 777 ../../usr/workspace/blog/cache/添加讀寫權(quán)限,
            b)看../../usr/workspace/blog/cache/下是否存在App.mod,如果已存在,則刪除;
3.PPC交叉編譯
3.1交叉編譯器PPC的安裝
  1.sudo apt-get install build-essential
  2.ppc的install文件必須是最高權(quán)限,ppc的安裝包在/home/at/ppc-version,安裝位置為/home/at/ppc
  3.sudo ./install -d ./ppc,安裝很長時間,大小為16G多點
  4.配置環(huán)境變量:
    a)#vim /etc/profile
    b)#export PATH=$PATH:/home/at/ppc/bin/:/home/at/ppc/usr/bin/:/usr/include
    c)#source /etc/profile
3.2交叉編譯應(yīng)用
  以appweb為例:
  1.設(shè)置相關(guān)環(huán)境變量
    a)#export CC=ppc_82xx-gcc
    b)#export AR=ppc_82xx-ar
    c)#export LD=ppc_82xx-ld
    d)#export RANLIB=ppc_82xx-ranlib
    e)#export STRIP=ppc_82xx-strip
    f)#export CC_FOR_BUILD=gcc

可選:esp編譯的一些環(huán)境變量,INC和LIBPATH好像不起作用,DEBUG可以
    a)#export INC="/usr/software/appweb-4.3.5-0/linux-ppc-debug/inc"
    b)#export LIBPATH="/usr/software/appweb-4.3.5-0/linux-ppc-debug/bin"
    c)#export DEBUG="-DBIT_DEBUG"

  2.在appweb解壓目錄下運(yùn)行
    #./configure --platform linux-ppc-debug --with ejscript --prefix base=[安裝目錄]
    運(yùn)行后會創(chuàng)建文件夾linux-ppc-debug和linux-ppc-debug.bit文件
  3.用bit工具編譯
    #bit --file linux-ppc-debug.bit --show
3.3交叉編譯esp應(yīng)用
  1.參照3.2   
  2.#esp compile

3.4.問題總結(jié):
  1.問題:*.h: file not exist or found
    原因:編譯命令的執(zhí)行參數(shù)導(dǎo)致的,因為編譯器不同,所以參數(shù)也不太一致
    解決:重新執(zhí)行報出該問題的命令,然后刪除一個非必需的執(zhí)行參數(shù),然后重新運(yùn)行,如果仍然有問題,重復(fù)前邊的操作,直到編譯通過(我的問題是這么解決的,不保證適合所有的人);
         有些編譯命令是動態(tài)生成的,可以記下該命令的明顯標(biāo)志,然后在linux-ppc-debug.bit中或者main.bit中的引入bit文件中逐個查找;
   我執(zhí)行過程中主要刪除的東西如下:
   a)sys/eventfd.h需要從linux-ppc-debug/inc/bitos.h中注釋掉;
   b)可學(xué)習(xí)下Bit語法,bit運(yùn)行原理是,配置項目時,首先讀取start.bit文件,然后根據(jù)main.bit生成特定平臺的配置文件,然后用生成的配置文件編譯項目,可修改bit文件中的targets下項目的屬性,達(dá)到個性化配置編譯參數(shù)的目的,Bit幫助文檔:http://embedthis.com/products/bit/doc/;以上問題辦法不能解決的話,可參考c)以下內(nèi)容
   c)刪除linux-ppc-debug.bit中compiler配置項,如下內(nèi)容,都刪掉:
-Wall: 生成所有警告信息
-g 生成調(diào)試信息
     compiler:[
         "-Wno-unused-result",
         "-Wall"
         "-g"
         "-fPIC"
     ],
defines:[
    "BIT_DEBUG",
    "PIC"
]
   d)刪除main.bit中引用的需要用ejsc編譯東西,因為ejsc是用交叉編譯編譯的,所以不能在主機(jī)上使用,這些命令需要記載下來,然后在ppc系統(tǒng)上再編譯
  2.問題:在ppc的linux系統(tǒng)中運(yùn)行appweb時報:Error: Call to epoll() failed
    原因:appweb需要使用epoll函數(shù),如果linux下epoll功能禁用了,會報該異常;
    解決:打開epoll功能,打開方法查度娘谷哥吧,我也不知道;

  3.問題:mvc: Error: Failed to get random bytes
    目前沒有解決,猜測是公司的PPC內(nèi)核缺少類庫

  4.問題:symbol lookup error: /usr/workspace/esp-hosted-mvc/cache/controller_a47694d25249243f7b5b341c9f57eda0.so: undefined symbol: init_snmp
    解決:1.export LD_PRELOAD=/usr/local/lib/libnetsnmp.so.30
         2.如果以上不行,試試別加sudo

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Appweb 4.1.0 的移植問題
嵌入式服務(wù)器appweb交叉編譯指南
移植APPWEB到ARM總結(jié)
Linux SNMP
linux的snmp安裝和配置 - hongliangpan - JavaEye技術(shù)網(wǎng)站
Snmp學(xué)習(xí)總結(jié)(六)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服