# 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**: 2026-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Table of Contents 1. [project](#orgb1a79b6) 1. [介绍](#org873c71c) 1. [特征:](#org052d91c) 2. [使用](#orge440492) 1. [打开已有的一个linux c/c++ app](#org52019f9) 2. [打开已有的一个linux qt app](#org14571f5) 3. [手动添加一个linux c/c++ app](#orge5c829f) 4. [自动添加一个linux c/c++ app](#org4442c21) 5. [自动添加一个linux qt app](#orgbc23fad) 6. [自动添加一个android phone android app](#org550d827) 7. [自动添加一个apple phone ios app(待实现)](#org794014b) 8. [编译执行x86程序](#org1b572f0) 9. [编译arm程序](#org1782a56) 10. [编译riscv程序](#orgae3b283) 11. [java/golang/python/rust/c#目前只支持手动添加](#org56aaac4) 12. [help命令](#orga3a1256) # project ## 介绍 本项目主要用于嵌入式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. 支持c#应用开发 13. 未来支持qt ios 应用开发 14. 目前支持x86, arm, riscv架构 ## 使用 ### 打开已有的一个linux c/c++ app 1. x86 将linux\_app\_ins\_prj/cmake/app.cmake中选择的应用打开即可 1. set(HELLO\_WORLD\_APP 1)(eg.) 2. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh x86 cpp 3. ./auto.sh run 2. arm 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(HELLO\_WORLD\_APP 1)(eg.) 2. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh arm cpp 3. ./auto.sh run ### 打开已有的一个linux qt app 1. x86 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(QT\_HELLO\_WORLD\_APP 1) 2. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh x86 qt5(qt6) 3. ./auto.sh run 2. arm 将linux\_app\_ins\_prj/cmake/app.cmake中的以下选项打开即可 1. set(IMX8MP\_YOCTO\_PLATFORM 1) 2. set(QT\_HELLO\_WORLD\_APP 1) 3. 其他的关闭 编译运行即可 1. ./auto.sh clean 2. ./auto.sh arm qt5(qt6) 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 cpp (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 qt5(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 cpp 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 cpp 4. ./auto.sh run ### 编译riscv程序 同arm ### java/golang/python/rust/c#目前只支持手动添加 1. python 1. app.cmake中修改set(PYTHON\_HELLO\_APP 0)为set(PYTHON\_HELLO\_APP 1),其余设置为0 2. ./auto.sh python 3. ./auto.sh run python 4. 与python相关的目录只有python/, 自己按需要修改即可 2. java 1. ./auto.sh java 2. ./auto.sh run java 3. 与java相关的目录只有java/, 自己按需要修改即可 3. golang 1. app.cmake中修改set(GO\_HELLO\_APP 0)为set(GO\_HELLO\_APP 1),其余设置为0 2. ./auto.sh python 3. ./auto.sh run python 4. 与golang相关的目录只有golang/, 自己按需要修改即可 ### help命令 1. ./auto.sh help Usage: ./auto.sh [command] [options] Available commands: app/module Create new application/module clean Clean build directory and kernel driver artifacts x86 Build for x86 architecture [cpp|qt5|qt6] arm Build for ARM architecture [cpp|qt5|qt6] riscv Build for RISC-V architecture [cpp|qt5|qt6] android Build for Android ios Build for iOS kernel_driver Build kernel driver [KERNEL_DIR] [ARCH] [CROSS_COMPILE] go Build Go application rust Build Rust application python Build Python application java Build Java application js Run JavaScript application csharp Build C# application run [target] Run application (python|java|csharp|default) mmrun Run with memory checking using valgrind gdb Run with GDB debugger help/-h/--help Show this help message Examples: ./auto.sh arm cpp ./auto.sh arm qt5 ./auto.sh x86 cpp ./auto.sh kernel_driver /path/to/kernel arm64 aarch64-linux-gnu- ./auto.sh run python ./auto.sh run csharp ./auto.sh csharp