1. 找到编译器位置所在(相关设置参考/opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi文件)

  poky安装在/opt目录下,编译器目录:/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueab/

2. 将编译器目录添加如环境变量

  vi ~/.bashrc

  在最后加入

  PATH=$PATH:/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi

  export PATH

  使路径生效

  sourec ~/.bashrc

3. 编写Makefile

  编写hello world程序。

  编写Makefile

   CC=arm-poky-linux-gnueabi-gcc   -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9
CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types
LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
EXEC = hello
OBJS = hello.o all:$(EXEC) $(EXEC):$(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) clean:
rm -f $(EXEC) *.elf *.gdb *.o

4. 出现问题

  开发板上执行生成的hello可执行程序提示: -sh: ./hello: not found

  使用arm-linux-gnueabihf-readelf -d hello 命令查看动态链接库情况,显示只使用了 libc.so.6 这个动态库

  查看开发板根文件系/lib文件夹,发现有动态库存在。

  网上说可能是 2个动态库 版本相差太多造成的,所以需要静态编译(在编译选项中加入-static即可)hello程序。

  开发板上再次执行hello程序,成功。

yocto 编译C程序的更多相关文章

  1. rockchip的yocto编译环境搭建

    作者:良知犹存 转载授权以及围观:欢迎添加微信公众号:Conscience_Remains 总述   嵌入式的朋友们,应该知道Linux驱动开发过程中,需要进行搭建交叉编译工具链环境.移植u-boot ...

  2. 配置指定使用tcc编译器编译nim程序

    1.前言 nim是什么? nim是一门静态编译型语言,语法类似python,nim的代码被翻译成C代码再被C编译器编译成可执行文件.因此nim的可执行文件比较小,性能应该也不错. 最简单的nim程序就 ...

  3. java编译错误 程序包javax.servlet不存在javax.servlet.*

    java编译错误 程序包javax.servlet不存在javax.servlet.* 编译:javac Servlet.java 出现 软件包 javax.servlet 不存在 软件包javax. ...

  4. objective-c 创建工程/编译/运行程序

    // First program example #import <Foundation/Foundation.h> int main (int argc, const char * ar ...

  5. [转]编译VC++程序warning C4819快速解决

    文章来自:http://www.cppblog.com/API/archive/2012/11/12/195056.aspx 编译VC++程序的时候出现如下提示警告: warning C4819: T ...

  6. 【Qt】命令行编译Qt程序(nmake)【转】

    简述 前两节讲解了如何在Visual Studio和Qt Creator中搭建Qt开发环境,并分享了我们第一个小程序-Hello World. 下面分享如何使用命令行来编译Qt程序.当然,MSVC和M ...

  7. Linux/Ubuntu下 静态编译Qt程序

    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...

  8. 利用csc.exe 手动编译C#程序

    1. 创建见 cs代码文件 using System; class TestApp{ static void Main() { Console.WriteLine("Test! 1,2,3& ...

  9. Linux下静态编译Qt程序

    一般情况下,我们用Qt编译出来的程序是要依赖于系统Qt库的,也就是这个程序移到别的没有安装Qt库的系统上是不能使用的.会提示缺少……库文件之类的错误.这就是动态编译的结果. 但是如果我们想编译一个程序 ...

随机推荐

  1. <linux-sed> sed基本用法

    1.简介 sed全称是Stream Editor,是非交互式的编辑器.它不会修改原文件,除非使用shell重定向来保存结果, 或者可以指定-i选项来在线修改文件,这样就会改变原文件,升级脚本通常用-i ...

  2. Python3.x运行Python2.x代码报错 syntax error "Missing parentheses in call to 'print'

    #另外一种错误 SyntaxError: Missing parentheses in call to 'print'. Did you mean print( 查看代码,格式如下: print &q ...

  3. 手写web框架之加载配置项目

    一  定义框架配置项 在项目的src/main/resources目录下创建一个名为smart.propertiesd的文件,文件的内容如下: smart.framework.jdbc.driver= ...

  4. rocksdb wiki文档阅读笔记

    由于是英文文档,不做笔记过一阵就忘了,现在把关键点记录到这,开发的时候使用. 具体wiki地址:https://github.com/facebook/rocksdb/wiki 1)Column Fa ...

  5. 连载二:RobotFramework+Svn+Jenkins集成测试

    使用SVN和Jenkins完成脚本的持续集成测试 目标: 1)使用svn管理脚本: 2)使用jenkins执行脚本: 3)在jenkins中配置svn自动获取最新的脚本执行: 步骤: (1)安装Jen ...

  6. C#大文件流式压缩加解密

    * * , CancellationToken token=default) { try { FileStream zipStream = new FileStream(writeFile, File ...

  7. SpringBoot起飞系列-拦截器和统一错误处理(七)

    一.前言 在前边部分我们已经学会了基本的web开发流程,在web开发中,我们通常会对请求做统一处理,比如未登录的用户要拦截掉相关请求,报错页面统一显示等等,这些都需要配置,可以大大简化我们的代码,实现 ...

  8. HTML accessKey约定俗成的标准

    accessKey属性提供了键盘快捷键 例: <a href="index.html" accessKey="1">Home</a> 这 ...

  9. 流程控制之 while 循环

    目录 流程控制之while while 条件循环语句 while contine while else while 循环的嵌套 流程控制之while while 条件循环语句 循环就是一个重复的过程 ...

  10. T100弹出是否确认窗体方式

    例如: IF NOT cl_ask_confirm('aim-00108') THEN CALL s_transaction_end(') CALL cl_err_collect_show() RET ...