# linux_app_ins_prj **Repository Path**: e665107/linux_app_ins_prj ## Basic Information - **Project Name**: linux_app_ins_prj - **Description**: linux_app_ins framework,mainly used to develop linux c/c++/qt applications, include desktop and embedded scenes. And it also supports python/go/rust/java applications. - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-10-17 - **Last Updated**: 2025-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Table of Contents 1. [project](#orgffaced4) 1. [介绍](#org000fb69) 1. [特征:](#org9558d6a) 2. [使用](#org15b3c28) 1. [打开已有的一个linux c/c++ app](#orge2daca4) 2. [打开已有的一个linux qt app](#orgeb06947) 3. [手动添加一个linux c/c++ app](#org1205c0d) 4. [自动添加一个linux c/c++ app](#org28ff9ea) 5. [自动添加一个linux qt app](#org4cca063) 6. [自动添加一个android phone android app](#org8e362d0) 7. [自动添加一个apple phone ios app(待实现)](#orgd5681f9) 8. [编译执行x86程序](#orgf692beb) 9. [编译arm程序](#org4ce9f2a) 10. [编译riscv程序](#orgdc6dc20) 11. [java/golang/python/rust目前只支持手动添加](#org818db27) # project ## 介绍 本项目主要用于linux-c/c++, 桌面以及嵌入式开发,包括测试和实际开发,类似freertos架构式的开发,以app为中心 两者之间可以相互移植,转换,适用于Linux下的应用开发。 ### 特征: 1. 配合u-boot,linux,rootfs(buildroot/yocto)共同构成嵌入式linux的系统实现 2. 采用cmake进行文件的组织,宏定义来进行裁剪 3. 本项目将不断进行更新,改造,长期维护 4. 借鉴zephyr,成熟工程cmake的组织形式 5. 支持linux驱动模块开发 6. 支持linux c/c++ 应用开发 7. 支持qt/C++图形界面应用开发 8. 支持cuda应用开发(待添加) 9. 支持qt android NDK C++应用开发 10. 支持rust, golang应用开发 11. 支持python, java应用开发 12. 未来支持qt ios 应用开发 13. 目前支持x86, arm, riscv架构 ## 使用 ### 打开已有的一个linux c/c++ app 1. x86 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(C\_CPP\_APP 1) 2. set(HELLO\_WORLD\_APP 1)(eg.) 3. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh x86 3. ./auto.sh run 2. arm 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(C\_CPP\_APP 1) 2. set(HELLO\_WORLD\_APP 1)(eg.) 3. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh arm 3. ./auto.sh run ### 打开已有的一个linux qt app 1. x86 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(QT\_APP 1) 2. set(QT\_HELLO\_WORLD\_APP 1) 3. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh x86 3. ./auto.sh run 2. arm 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(QT\_APP 1) 2. set(IMX8MP\_YOCTO\_PLATFORM 1) 3. set(QT\_HELLO\_WORLD\_APP 1) 4. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh arm 3. ./auto.sh run ### 手动添加一个linux c/c++ app 1. linux\_app\_ins\_prj/cmake/app.cmake中添加一个app eg: set(HELLO\_WORLD\_APP 1) 2. 在app目录,bsp目录等添加 if (\\${HELLO_WORLD_APP}) do something else... endif (\${HELLO\_WORLD\_APP}) 3. 在 app/中添加一个相应的app目录 4. 在该app目录中添加相应的thread/process源文件 5. 在该app目录中添加相应的function\_f源文件,like freertos工程 6. 在bsp中编写相应的设备底层初始化文件 eg: bsp\_ttyusb0.c bsp\_ttyusb0.h 7. 在flib的CMakeLists.txt中做类似2的改变 8. 在对应的目录中的CMakeLists.txt中添加相应app要连接的静态库/动态库 9. add the app name to the app\_config.in.h ### 自动添加一个linux c/c++ app 1. ./auto.sh clean 2. ./auto.sh app app\_name(eg. test0) 3. ./auto.sh x86 (compile) 4. ./auto.sh run (run) ### 自动添加一个linux qt app 1. ./auto.sh clean 2. ./auto.sh app qt app\_name(eg. test0) 3. ./auto.sh x86 (compile) 4. ./auto.sh run (run) ### 自动添加一个android phone android app 1. ./auto.sh clean 2. ./auto.sh app android app\_name(eg. test0) 3. ./auto.sh android (compile, install) ### 自动添加一个apple phone ios app(待实现) 1. ./auto.sh clean 2. ./auto.sh app ios app\_name(eg. test0) 3. ./auto.sh ios (compile, install) ### 编译执行x86程序 1. ./auto.sh clean 2. ./auto.sh x86 3. ./auto.sh run ### 编译arm程序 1. 修改arm\_linux\_cross.cmake中的toochain配置 eg:# sunxi set(tools "/home/e665106/orangepi-zero/buildroot-2022.05.2/output/host") set(CMAKE\_C\_COMPILER \\${tools}/bin/arm-linux-gcc) set(CMAKE\_CXX\_COMPILER ${tools}/bin/arm-linux-g++) 2. ./auto.sh clean 3. ./auto.sh arm 4. ./auto.sh run ### 编译riscv程序 同arm ### java/golang/python/rust目前只支持手动添加 1. python 1. 修改cmake/app.cmake, 将set(PYTHON\_APP 0)改为set(PYTHON\_APP 1) 2. 修改set(PYTHON\_HELLO\_APP 0)为set(PYTHON\_HELLO\_APP 1),其余设置为0 3. ./auto.sh python 4. ./auto.sh run python 5. 与python相关的目录只有python/, 自己按需要修改即可 2. java 1. 修改cmake/app.cmake, 将set(JAVA\_APP 0)改为set(JAVA\_APP 1) 2. 其余设置为0, 目前java待进一步添加相关功能 3. ./auto.sh java 4. ./auto.sh run java 5. 与java相关的目录只有java/, 自己按需要修改即可 3. golang 1. 修改cmake/app.cmake, 将set(GO\_APP 0)改为set(GO\_APP 1) 2. 修改set(GO\_HELLO\_APP 0)为set(GO\_HELLO\_APP 1),其余设置为0 3. ./auto.sh python 4. ./auto.sh run python 5. 与python相关的目录只有python/, 自己按需要修改即可