# 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/, 自己按需要修改即可