|

楼主 |
发表于 2025-2-9 11:08:00
From FishC Mobile
|
显示全部楼层
FishC 发表于 2025-2-8 22:20
回答:
第一个问题:
第一个问题,如果我找到了.lib文件 也查看了src.mk(里面包含了很多编译的动态库的地址)但是我找不到对应的地址来寻找我的.cpp文件
第二个问题,我全局搜索了绑定函数的名字,也搜索不到,但是我能搜索到connect关键字
在文件中找到dlopen #######################################文件说明########################################## #外层src.mk已包含公共的一些头文件、库文件、宏定义等,各个业务有特殊处理,请在此文件中定义,避免业务之间相互影响。 #机型、客户、编译信息等,在app/build/common/define中定义 #注意,此文件不可加入指定路径相关信息,行业有可能不是按照streamaxsdk搭建sdk资源目录 #LOCAL_DYNAMIC_LIBRARIES:链接的库 ######################################################################################### #####芯片定义 BUILD_HI3516DV300=C6D4.0 C6DAI C6D4.0S C6D4.1 C6D4.0S_2.0 C6E2.0 C6D4.2 C6DAI3.0 C6D4.0_2.0 C30M ADPRO C6D4.0_CSD BUILD_HI3521A=X5_AHD5.0 BUILD_NT9832X=X5N X3N X1N X5N_AI X3N_AI X1N_AI V3H0404 MDR608 X5NPRO H5_20 D6 VT5500_C NH6A X3NPRO BUILD_NT98316=X7N X7NPRO BUILD_CV25=944_VA BUILD_NT9852X=C6D5.0 C30MN AIBOX5.0 ADPRO2.0 ADPLUS ADPLUS2.0 C6LITE D50_VB 957_VB 951_VD ADLITE BUILD_NT9856X=C43 C47 BUILD_CV2=AIBOX6.0 BUILD_3521DV100=X7V3 BUILD_HORIZON_X3=C40A C40B #开源库路径变更必备链接 LOCAL_DYNAMIC_LIBRARIES+=-lcurl -lexpat -lavformat -lavcodec -lavutil -lswresample -lssl -lcrypto -lz ifeq (${SUPPORT_ALSA}, y) LOCAL_DYNAMIC_LIBRARIES += -lasound endif #动态库dlopen必备 LOCAL_DYNAMIC_LIBRARIES+=-ldl #是否开启数据加解密 BUILD_FUNC_DATASECURITY=M1N X1N X3N X5N X1N_AI X3N_AI X5N_AI X7N X5_AHD5.0 ADPLUS ADPLUS2.0 ADLITE ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_FUNC_DATASECURITY)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+= -lDataSecurity LOCAL_DYNAMIC_LIBRARIES+= -lmbedcrypto endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_HI3516DV300)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+=-lrmisp LOCAL_DYNAMIC_LIBRARIES+=-lsecurec #hisi LOCAL_DYNAMIC_LIBRARIES+=-lmpi -live -lnnie #######分类编译 BUILD_FUNC_FACE=C6D4.0 C6D4.0S C6D4.0S_2.0 C6D4.1 ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_FUNC_FACE)), $(PRODUCT_TYPE)) #face LOCAL_DYNAMIC_LIBRARIES+=-lrmai_taxi LOCAL_DYNAMIC_LIBRARIES+=-lcv_sys_api endif LOCAL_DYNAMIC_LIBRARIES+=-l_staewb #tts #LOCAL_DYNAMIC_LIBRARIES+=-lhci_curl -lhci_sys -lhci_tts -lhci_tts_local_synth endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_HI3521A)), $(PRODUCT_TYPE)) #LOCAL_DYNAMIC_LIBRARIES+=-lcurl #LOCAL_DYNAMIC_LIBRARIES+=-lhci_sys -lhci_tts -lhci_tts_local_synth endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_CV25)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+=-lasound -laudio -lfreetype -lsmartfb -lg7xx LOCAL_DYNAMIC_LIBRARIES+=-llua -lmcl -lnnctrl -lcavalry_mem -lvproc -l_data_process endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_NT9852X)), $(PRODUCT_TYPE)) #######编译TTS #LOCAL_DYNAMIC_LIBRARIES+=-lhci_curl -lhci_sys -lhci_tts -lhci_tts_local_synth #######分类编译ISP BUILD_FUNC_ISP=ADPRO2.0 C6D5.0 C30MN ADPLUS ADPLUS2.0 C6LITE D50_VB 957_VB 951_VD ADLITE ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_FUNC_ISP)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+=-lrmisp endif endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_NT98316)), $(PRODUCT_TYPE)) #LOCAL_DYNAMIC_LIBRARIES+= endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_NT9856X)), $(PRODUCT_TYPE)) #######分类编译ISP BUILD_FUNC_ISP=C43 C47 ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_FUNC_ISP)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+=-lrmisp endif endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_CV2)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+= -lg7xx -lasound -lmcl -llua -laudio endif ifeq ($(filter $(PRODUCT_TYPE), $(BUILD_HORIZON_X3)), $(PRODUCT_TYPE)) LOCAL_DYNAMIC_LIBRARIES+=-ldl endif
以及src.mk文件
#该文件的编译规则和makefile一样,src.mk所在目录深度不能大于2,例如storage/src.mk、storage/xx/src.mk、storage/xx/xx/src.mk合法,storage/xx/xx/xx/src.mk不合法 #PRODUCT_TYPE(设备类型) #该文件的编译规则和makefile一样,src.mk所在目录深度不能大于2,例如storage/src.mk、storage/xx/src.mk、storage/xx/xx/src.mk合法,storage/xx/xx/xx/src.mk不合法 #PRODUCT_TYPE(设备类型) #使用gcc进行编译。有些在开源库基础上开发的代码使用g++进行编译会出现一大堆警告,默认使用g++进行编译,比如const char*和char*相互赋值 USE_GCC=n #add start CFLAGS+= -Wno-char-subscripts -rdynamic -ldl -Wno-error -w #1.定义当前路径 LOCAL_PATH=$(ROOT_DIR) RELEASER_DIR_PATH=$(LOCAL_PATH)/../.. #2.定义需要包含的头文件 LOCAL_INCLUDES+=-I${LOCAL_PATH} LOCAL_INCLUDES+=-I${LOCAL_PATH}/business LOCAL_INCLUDES+=-I${LOCAL_PATH}/business/basicfunctioncustomization LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/1448_include #以下头文件是基础GUI提供的头文件 LOCAL_INCLUDES+=-I${LOCAL_PATH} LOCAL_INCLUDES+=-I${LOCAL_PATH}/business LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libbasebusiness LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libbasebusiness/businessframe LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libbasebusiness/plugin LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libtelephone LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/backend LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/builder LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/canvas LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/eventloop LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/FontLibOpt LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/general LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/PicParser LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/qrencode LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/widget LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/streamaxsdk/include/gui/libframework/core/wmanager LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/1448_include LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/libcommon/filedataapi LOCAL_INCLUDES+=-I${RELEASER_DIR_PATH}/libcommon/msgdatamanage #3.定义需要包含的库文件路径 LOCAL_LDFLAGS+=-L${RMFS_LIB_DIR} LOCAL_LDFLAGS+=-L${RELEASER_DIR_PATH}/streamaxsdk/linux/${PRODUCT_TYPE}/lib #4.定义需要包含的静态库 LOCAL_STATIC_LIBRARIES+= #5.定义需要包含的动态库 LOCAL_DYNAMIC_LIBRARIES+=-ljpeg LOCAL_DYNAMIC_LIBRARIES+=-lqrencode LOCAL_DYNAMIC_LIBRARIES+=-lpthread LOCAL_DYNAMIC_LIBRARIES+=-ltinyxml2 LOCAL_DYNAMIC_LIBRARIES+=-ltinyxml LOCAL_DYNAMIC_LIBRARIES+=-lcairo LOCAL_DYNAMIC_LIBRARIES+=-lfontconfig LOCAL_DYNAMIC_LIBRARIES+=-lfreetype LOCAL_DYNAMIC_LIBRARIES+=-lpixman-1 LOCAL_DYNAMIC_LIBRARIES+=-lpng14 LOCAL_DYNAMIC_LIBRARIES+=-lstreamaxcbb LOCAL_DYNAMIC_LIBRARIES+=-lrmfs5.0 LOCAL_DYNAMIC_LIBRARIES+=-lappcommon LOCAL_DYNAMIC_LIBRARIES+=-ltelephoneapis LOCAL_DYNAMIC_LIBRARIES+=-lguiframework LOCAL_DYNAMIC_LIBRARIES+=-lguibasebusiness LOCAL_DYNAMIC_LIBRARIES+=-lrmbasicapi-streamaxsdk #6.定义需要宏定义 LOCAL_CFLAGS+= #7.定义需要的源文件路径,makefile会扫描以下路径的.c和.cpp文件进行编译 LOCAL_SRC_DIR+=${LOCAL_PATH} LOCAL_SRC_DIR+=${LOCAL_PATH}/setup LOCAL_SRC_DIR+=${LOCAL_PATH}/setup/alarm LOCAL_SRC_DIR+=${LOCAL_PATH}/setup/basic LOCAL_SRC_DIR+=${LOCAL_PATH}/setup/data LOCAL_SRC_DIR+=${LOCAL_PATH}/setup/video LOCAL_SRC_DIR+=${LOCAL_PATH}/setup/maintain LOCAL_SRC_DIR+=${LOCAL_PATH}/state LOCAL_SRC_DIR+=${LOCAL_PATH}/preview LOCAL_SRC_DIR+=${LOCAL_PATH}/log #8.如果不期望自动扫描目录,上面的路径可以不设,通过以下直接定义需要编译的文件 #LOCAL_SRC_FILE+= #9.本模块编译后的文件名称,当后缀为.a时编译为静态库,后缀为.so时编译为动态库,不加后缀为可执行文件 #GUI行业库名称指定 LOCAL_MODULE=guibus-1448.so |
|