build note
1.第三方库SDKtar-czfx86_64.tar.gz rootfs/2.手动编译生成静态库无 CMakeCmddir buildcdbuild#编译所有 .cpp 成 .og-c-O2-fPIC-stdc11 *.cpp#生成静态库 libalglib.aar rcs libalglib.a *.orootc3d03e01ff8d:/algocv/algocv/src/lib/core/camera/measure/vpr/alglib# tree.├── alglibinternal.cpp ├── alglibinternal.h ├── alglibmisc.cpp ├── alglibmisc.h ├── ap.cpp ├── ap.h ├── build │ ├── alglibinternal.o │ ├── alglibmisc.o │ ├── ap.o │ ├── dataanalysis.o │ ├── diffequations.o │ ├── fasttransforms.o │ ├── integration.o │ ├── interpolation.o │ ├── kernels_avx2.o │ ├── kernels_fma.o │ ├── kernels_sse2.o │ ├── linalg.o │ ├── optimization.o │ ├── solvers.o │ ├── specialfunctions.o │ └── statistics.o ├── dataanalysis.cpp ├── dataanalysis.h ├── diffequations.cpp ├── diffequations.h ├── fasttransforms.cpp ├── fasttransforms.h ├── integration.cpp ├── integration.h ├── interpolation.cpp ├── interpolation.h ├── kernels_avx2.cpp ├── kernels_avx2.h ├── kernels_fma.cpp ├── kernels_fma.h ├── kernels_sse2.cpp ├── kernels_sse2.h ├── linalg.cpp ├── linalg.h ├── optimization.cpp ├── optimization.h ├── solvers.cpp ├── solvers.h ├── specialfunctions.cpp ├── specialfunctions.h ├── statistics.cpp ├── statistics.h └── stdafx.hCmddir buildcdbuild#编译所有 .c 成 .ogcc-I../h-c../*.c#生成静态库 libfft2d.aar rcs libfft2d.a *.o#查看nm libfft2d.a|grepcdft# 0000000000000000 T cdft3.CMakeLists 编译静态库cmake_minimum_required(VERSION3.10)project(EyeLib)set(CMAKE_CXX_FLAGS${CMAKE_CXX_FLAGS}-fpermissive)set(CMAKE_POSITION_INDEPENDENT_CODE ON)# 指定 OpenCV 目录如果默认找不到#set(OpenCV_DIR /usr/lib/x86_64-linux-gnu/cmake/opencv4)# 添加 OpenCVfind_package(OpenCV REQUIRED)#find_package(Eigen REQUIRED)# 添加 Eigen#find_package(Eigen3 REQUIRED) # 这行查找 Eigen#include_directories(${EIGEN3_INCLUDE_DIR}) # 添加 Eigen 头文件路径set(EIGEN3_INCLUDE_DIR /algocv/algocv/build/sdk/rootfs/usr/include)include_directories(${EIGEN3_INCLUDE_DIR})# 创建静态库add_library(eye STATIC Hartmann-Shack/HSProcess.cpp Hartmann-Shack/HSProcessingProperties.cpp Hartmann-Shack/HSProperties.cpp Hartmann-Shack/Preprocess.cpp Hartmann-Shack/Pyramidal.cpp Hartmann-Shack/SelectSpotsProperties.cpp Hartmann-Shack/SearchPupil.cpp Hartmann-Shack/SpotDiscardConditions.cpp Hartmann-Shack/StackZernikesOSA.cpp Hartmann-Shack/hsresult.cpp Hartmann-Shack/StackZernikesOSA.cpp Logger.cpp Pupil.cpp)# 添加 OpenCV 头文件路径target_include_directories(eye PUBLIC${CMAKE_SOURCE_DIR}/include# 你的项目头文件${CMAKE_SOURCE_DIR}/include/Hartmann-Shack# 你的项目头文件${OpenCV_INCLUDE_DIRS}# OpenCV 头文件路径${EIGEN3_INCLUDE_DIR}# Eigen 头文件)# 链接 OpenCV 库target_link_libraries(eye PUBLIC${OpenCV_LIBS})4.批量dos2unixfind.-typef\(-name*.h-o-name*.sh-o-name*.cpp\)-execdos2unix{}\;5.PyInstaller打包程序#1.生成 spec 文件模板pyi-makespec--onefile../../src/apy/pymain.py#2.修改生成的 pymain.spec 文件#3.打包# 显示 INFO 级别日志默认python-mPyInstaller pymain.spec --log-levelINFO# 显示 DEBUG 级别日志最详细python-mPyInstaller pymain.spec --log-levelDEBUG# 显示 WARN 级别日志只有警告和错误python-mPyInstaller pymain.spec --log-levelWARNpymain.spec# -*- mode: python ; coding: utf-8 -*-aAnalysis([..\\..\\src\\apy\\pymain.py],pathex[],binaries[],datas[],hiddenimports[],hookspath[],hooksconfig{},runtime_hooks[],excludes[],noarchiveFalse,optimize0,)pyzPYZ(a.pure)exeEXE(pyz, a.scripts, a.binaries, a.datas,[],namepymain,debugFalse,bootloader_ignore_signalsFalse,stripFalse,upxTrue,upx_exclude[],runtime_tmpdirNone,consoleTrue,disable_windowed_tracebackFalse,argv_emulationFalse,target_archNone,codesign_identityNone,entitlements_fileNone,)# -*- mode: python ; coding: utf-8 -*-importosimportsys spec_file_pathsys.argv[0]spec_diros.path.dirname(os.path.abspath(spec_file_path))# 项目根目录spec 文件在 tools\pack\ 下向上两级到项目根目录project_rootos.path.abspath(os.path.join(spec_dir,..,..))# src\apy 目录src_apy_diros.path.join(project_root,src,apy)# 构建 datas 列表datas[]# 添加 agent 目录agent_diros.path.join(src_apy_dir,agent)ifos.path.exists(agent_dir): datas.append((agent_dir,agent))# 添加 common 目录common_diros.path.join(src_apy_dir,common)ifos.path.exists(common_dir): datas.append((common_dir,common))# 添加 projects\vpr 目录vpr_diros.path.join(src_apy_dir,projects,vpr)ifos.path.exists(vpr_dir): datas.append((vpr_dir,projects/vpr))# 添加 pymain.py 文件pymain_fileos.path.join(src_apy_dir,pymain.py)ifos.path.exists(pymain_file): datas.append((pymain_file,.))# 隐藏导入列表hiddenimports[# agent 模块agent,agent.arpc,agent.talker,# common 模块common,common.constants,common.csocket,common.logger,common.payload,common.tasks,# projects\vpr 模块projects.vpr.calibrate.image_analyzer,projects.vpr.calibrate.step1,projects.vpr.calibrate.step2,projects.vpr.calibrate.step3,projects.vpr.calibrate.step4,projects.vpr.calibrate.step5,projects.vpr.calibrate.step6,projects.vpr.calibrate.step7,projects.vpr.calibrate.step9,projects.vpr.handler_api,projects.vpr.task_types,projects.vpr.path_utils,]aAnalysis([os.path.join(..,..,src,apy,pymain.py)],pathex[project_root, src_apy_dir],binaries[],datasdatas,hiddenimportshiddenimports,hookspath[],hooksconfig{},runtime_hooks[],excludes[tkinter,pdb,test,],noarchiveFalse,optimize0,)pyzPYZ(a.pure)exeEXE(pyz, a.scripts, a.binaries, a.datas,[],namepymain,debugFalse,bootloader_ignore_signalsFalse,stripFalse,upxTrue,upx_exclude[],runtime_tmpdirNone,consoleTrue,disable_windowed_tracebackFalse,argv_emulationFalse,target_archNone,codesign_identityNone,entitlements_fileNone,iconNone,)6.生成pdb文件编译1.cmake-DCMAKE_BUILD_TYPERelease-DTARGET_PROJECTvpr-DEXTRA_SDK_OUTPUT_DIRECTORYE:\workplaces\algocv_windows_plus\algocv\build\sdk-DCMAKE_PDB_OUTPUT_DIRECTORYE:\workplaces\algocv_windows_plus\algocv\build\pdb-DCMAKE_COMPILE_PDB_OUTPUT_DIRECTORYE:\workplaces\algocv_windows_plus\algocv\build\vpr\pdb../../2.cmake-DCMAKE_BUILD_TYPERelease-DCMAKE_PDB_OUTPUT_DIRECTORY./pdb..3.cmake--build.--configRelease#或者cmake-DCMAKE_BUILD_TYPERelease-DTARGET_PROJECTvpr-DEXTRA_SDK_OUTPUT_DIRECTORYE:\workplaces\algocv_windows_plus\algocv\build\sdk-DCMAKE_PDB_OUTPUT_DIRECTORYE:\workplaces\algocv_windows_plus\algocv\build\vpr\pdb../..cmake--build.--configRelease--parallel8#好使cmake-DCMAKE_BUILD_TYPERelease-DCMAKE_CXX_FLAGS_RELEASE/O2 /Ob2 /Zi-DCMAKE_EXE_LINKER_FLAGS_RELEASE/DEBUG /OPT:REF /OPT:ICF-DCMAKE_SHARED_LINKER_FLAGS_RELEASE/DEBUG /OPT:REF /OPT:ICF-DTARGET_PROJECTvpr-DEXTRA_SDK_OUTPUT_DIRECTORYE:\workplaces\algocv_windows_plus\algocv\build\sdk-DCMAKE_PDB_OUTPUT_DIRECTORYE:\workplaces\algocv.algocv_windows_plus.20260612\build\vpr\pdb../../

相关新闻