yocto下的cmake版本hello world,追加分层使用
来源:互联网 发布:js 弹出消息框 编辑:程序博客网 时间:2024/06/14 15:45
这里记载如何使用Yocto编译一个cmake的helloworld的程序
我想把这个helloworld当成一个新的模块区别与yocto版本的helloworld
1.所以先在yo目录下,建立一个cmakehelloworld文件夹.
2.使用了层,需要在conf路径下新建立一个文件叫,bblayers.conf,yocto用这个文件来管理层。
内容写上这一句就可以了:
BBLAYERS += "${TOPDIR}/cmakehelloworld"
3.回到自己的层,也就是/cmakehelloworld/这个路径里,添加自己的层的配置文件,建立conf文件夹,在里面建立一个叫layer.conf的文件:
内容为:
BBFILES += "${LAYERDIR}/recipes/*.bb"
BBPATH .= ":${LAYERDIR}"
BBFILE_COLLECTIONS += "cmakehelloworld"
BBFILE_PATTERN_cmakehelloworld := "^${LAYERDIR}/"
BBFILE_PRIORITY_cmakehelloworld = 5
4.在cmakehelloworld路径下放上我们的主角helloworld,先建立个source文件夹,在里面写一个main.c
内容为
#include <stdio.h>
int main(){
printf("Hello world ,I am Cmake in yocto!\n");
return 0;
}
5.编译上面的代码,方法为在cmakehelloworld路径下建立build文件夹,在里面放上CMakeLists.txt文件
内容为:
PROJECT(hello_cm)
SET(SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/../source/main.c)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../image)
ADD_EXECUTABLE(hello_cm ${SRC_LIST})
6.把编译步骤写进bb里,方法为在cmakehelloworld下建立recipes文件夹,在里面放上hello_cmake.bb文件
内容为:
inherit cmake
DESCRIPTION = "Hello world in cmake"
PN = 'hello_cm'
PV = '1'
SRCREV = "${AUTOREV}"
S = "${TOPDIR}/cmakehelloworld/build"
7.由于yotco默认执行do_build task(修改默认task的方法为BB_DEFAULT_TASK = "build"这里的Build改成其他的就可以了),而base的class里的build无法实现我们的Cmake编译,所以在cmakehelloworld下建立classes,里面放上cmake.bbclass
内容为:
do_build() {
cd ${S}
cmake .
make
}
到这里就可以了,在yo路径下执行bitbake hello_cm就可以看到在image里生成的hello_cm执行程序,执行./hello_cm
Hello world ,I am Cmake in yocto!
大功告成!
- yocto下的cmake版本hello world,追加分层使用
- yocto下的bb版本hello world
- Cmake的Hello World
- 【使用CMake组织C++工程】1:CMake Hello World
- CMAKE 写hello world
- 各个版本的Hello World
- spring boot 利用分层结构输出简单的Hello world
- Linux 下的“Hello world!”
- Linux下的“Hello world!”
- vs2008 下使用ICE 的Hello world 程序
- CMake实践三:Hello World的共享库建立
- 使用jgraph的“Hello world!"
- 各个语言的hello world版本
- Hello World的国际化静态版本
- Yocto的使用实例
- 实践cmake(1)--搭建hello world
- [unix]用cmake写hello world
- .Net Framework 3.0下的"Hello,World"
- HTML/CSS学习汇总(1)
- linux的原子操作学习总结
- Java利用Zxing生成二维码
- 安装、卸载apk的几种方式
- html5实现无缝滚动的效果
- yocto下的cmake版本hello world,追加分层使用
- c++类继承
- 11F牛顿迭代法
- Android studio中的本地代码和svn服务器代码取消关联
- Jmeter-获取响应结果中参数出现的次数
- Visual Studio for Mac发布
- 使用Yomail的时候出现的错误解决方案
- 为什么企业数据化运营很重要?
- Android 6.0动态设置用户权限