把 MPP Sample 編譯成動態庫

2022-06-18 15:06:11 字數 1921 閱讀 9132

mpp

\ component 開發攝像頭isp影象演算法

\ ko 一些編譯好的或存放待編譯的驅動模組

\ lib **框架api庫

\ sample **應用開發示例 一般做**應用開發直接到sample中,套用檔案組織結構就可以了

\ tools 呼叫api的工具例子

sample

\common 公共原始檔,**開發一般都會包括這些

\makefile 用於設定自定義的編譯引數值,也並沒有具體的編譯規則

\ makefile 這個檔案並沒有實質編譯規則內容,主要起到選擇編譯那個資料夾的作用,如果新增了自己的資料夾,直接相應新增即可。

\makefile.param 這個是全域性的預設編譯引數,適用於同路徑下的所以工程,通常要被工程檔案下的makefile首先包含

\up_linux.mak 這個就是編譯規則檔案,也用於同路徑下的所以工程,通常由工程檔案下的makefile最後包含

規則關鍵語句如下

$(target):$(comm_obj) $(objs)

@$(cc) $(cflags) -lpthread -lm -o $(target_path)/$@ $^ -wl,--start-group $(mpi_libs) $(sensor_libs) $(audio_liba) $(rel_lib)/libsecurec.a -wl,--end-group

其中$(comm_obj)為公共原始檔的.o檔案(原始碼路徑./common),$(objs)為工程目錄中makefile指定的原始檔,也就是自己的工程**,除了這個變數和$(target)外,其他變數值主要**於includemakefile.param中的**。這行規則主要是把所有的公共檔案和工程檔案編譯成應用程式,-wl,--start-group用於指定連線的靜態庫,$(cflags)指定編譯選項。

這些工程makefile中都通過include相對路徑相互聯絡,只要套用這個工程檔案組織架構新增工程編譯就不會有錯。但當開發資料在外部儲存,並不放到這個檔案結構裡,那麼把mpp這堆東西編譯成動態庫好了。

在sample路徑下新建目錄buildso,並新建makefile填如下內容

include ../makefile.param

target := libmpp.so

target_path := .

cflags += $(comm_inc)

.phony : so clean

so: $(target)

$(target):$(comm_obj)

$(cc) -fpic -shared $(cflags) -o $(target_path)/$@ $^ -wl,--start-group $(mpi_libs) $(sensor_libs) $(audio_liba) $(rel_lib)/libsecurec.a -wl,--end-group

clean:

@rm -f $(target_path)/$(target)

@rm -f $(objs)

@rm -f $(comm_obj)

這裡還是需要通過include ../makefile.param取獲取一些預設的引數值,當mpp完成配置並編譯成庫動態庫後,mpp對於自己的工程就是乙個獨立外部元件,只要配置好交叉編譯工具鏈,指定一下mpp/includecommon這兩個標頭檔案路徑,就可以進行相對獨立的開發了。

把proto檔案編譯成objective c檔案

liliang的專欄 當前最新版本2.4.1 最後make install後,會生成編譯器protoc,並拷貝到 usr local bin目錄下。目前有兩種型別的實現。乙個針對protocolbuffer2.2做修改,使最後生成的.proto檔案編譯器 protoc 支援objective c型別...

把python檔案編譯成exe檔案

把python檔案編譯成exe檔案 2008年06月24日 星期二 下午 08 37 把python 編譯成exe檔案是一件很酷的事情,有很多軟體都能實現這個功能。1.py2exe鏈結 安裝比較簡單,一路下一步就行了。建立乙個例子檔案foobar.py print foobar 建立乙個安裝檔案se...

把CS檔案編譯成dll檔案

編譯方法如下 一.開啟vs.net的c命令提示 二.進入目錄 三.輸入如下命令 csc t library out f md5.dll f md5.cs 常用 如圖 如何做才能夠把cs檔案編譯成dll且自動放到虛擬目錄的bin資料夾中呢?開始 程式 microsoft visual studio.n...