迅为Exynos4412开发板例程及注释——QT环境配置与HelloWorld

在配置QT环境里我遇到了一些问题,整理如下,以便兄弟们阅读学习。


1.

/lib/libc.so.6: version `GLIBC_2.17' not found

这个问题网上已经给出了解决方案,我复制在下面,亲测有效。
https://my.oschina.net/zhangxu0512/blog/262275

在解决这个问题的时候,我不小心吧2.17输入成了2.14,然后我rm -r了文件夹,重启后又安装了一遍。奇怪的是,重启之前安装还是有问题。

2.
make: arm-linux-g++: Command not found
make: *** [main.o] Error 127

我在用qmake编译helloworld之后,出现这这段报错。那我就想了,到底是我就没有g++和gcc呢还是QT没有正确的调用呢?在通过资料搜集之后,我总结出下面两种方法。
2.1添加环境变量。
2.2使用绝对路径。

这里给出适用于迅为开发板的第二种方式,亲测可用。

首先请去/usr/local/arm/4.4.1/bin/这个目录下看一看(root模式下),你会看到一大堆交叉编译链躺在那里,这说明人家明明就有。
然后,再去/opt/qt-4.7.1/mkspecs/qws路径下,用vim linux-arm-g++进去,选中qmake.config,然后改成如下模式
# modifications to g++.conf
QMAKE_CC                = /usr/local/arm/4.4.1/bin/arm-linux-gcc
QMAKE_CXX               = /usr/local/arm/4.4.1/bin/arm-linux-g++
QMAKE_LINK              = /usr/local/arm/4.4.1/bin/arm-linux-g++
QMAKE_LINK_SHLIB        = /usr/local/arm/4.4.1/bin/arm-linux-g++
保存即可,回你的目录去make吧!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于Exynos4412开发板的程序示例: ```c #include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <sys/mman.h> #include <stdint.h> #define RTC_BASE 0x10060000 #define RTC_SIZE 0x1000 #define GPD0_BASE 0x11400000 #define GPD0_SIZE 0x1000 volatile uint32_t *rtc_reg; volatile uint32_t *gpd0_reg; int main() { int fd = open("/dev/mem", O_RDWR | O_SYNC); if (fd == -1) { perror("open"); return -1; } rtc_reg = (uint32_t *) mmap(NULL, RTC_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, RTC_BASE); if (rtc_reg == MAP_FAILED) { perror("mmap"); close(fd); return -1; } gpd0_reg = (uint32_t *) mmap(NULL, GPD0_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, GPD0_BASE); if (gpd0_reg == MAP_FAILED) { perror("mmap"); close(fd); return -1; } // 设置RTC的时钟源为32KHz,使能RTC rtc_reg[0x40/4] = 1; // 设置定时时间为1分20秒 rtc_reg[0x50/4] = (80 << 8) | 1; // 等待定时器到期 while ((rtc_reg[0x54/4] & 0x1) == 0); // 发出蜂鸣器声音 gpd0_reg[0x0/4] |= 0x1; munmap((void *) rtc_reg, RTC_SIZE); munmap((void *) gpd0_reg, GPD0_SIZE); close(fd); return 0; } ``` 程序的主要流程如下: 1. 打开 `/dev/mem` 设备,以便进行内存映射; 2. 将 RTC 和 GPD0 的寄存器地址进行内存映射; 3. 设置 RTC 的时钟源为 32KHz,使能 RTC; 4. 设置定时时间为 1 分 20 秒; 5. 等待定时器到期; 6. 发出蜂鸣器声音; 7. 解除内存映射,关闭 `/dev/mem` 设备。 需要注意的是,由于本程序需要对系统的硬件资源进行访问和控制,因此需要以 root 权限运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值