![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C 编程
文章平均质量分 53
qq_36525177
这个作者很懒,什么都没留下…
展开
-
__attribute( (section(x)) ) 在 GCC 和 ARMCC (Keil MDK) 中的使用
然而上述功能只能对 GCC 平台有效, 如果是 ARMCC 或是其他平台, 因为编译器不同, 方法可能不一样, 为了跨平台, 就不得不添加平台检测的宏, 比如将下面的代码替换获取 myfun_section 所在的内存区间部分即可支持 ARMCC 平台。有了上面的基础, 就可以尝试写快速测试的代码了,一般来说我们希望测试快速测试一个函数, 编写完后在函数下面通过一个宏定义 TEST_FUNC_ADD 就可以将函数插入到测试代码的行列。可以访问变量所在的地址, 所以访问段的的起始地址为。原创 2023-01-11 18:10:32 · 810 阅读 · 0 评论 -
计算两个日期相差多少天
/** * 思路是循环累加两个相差的年份, 然后再减去较小年份的日期走过多少天, 加上较大年份的日期走过多少天 * * 比如 2000/04/05-2002/05/02 * * |----------+---/--------------------------------------|----------+---/ * 2000 4 5 2002 5 2 * * [---------原创 2022-04-28 09:24:26 · 282 阅读 · 0 评论 -
ARM GNU 编译与链接01: 工程创建, 程序烧写和调试
基于 STM32 平台, 对编译与链接原理进行探究,以及学习 ARM 汇编指令集, GNU 的汇编语法。原创 2022-03-20 16:18:18 · 626 阅读 · 0 评论 -
MSYS 下winsocket 简单使用
server.cpp#include <iostream> #include <winsock2.h> using namespace std;int main(int argc, char* argv[]){ //初始化WSA WORD sockVersion = MAKEWORD(2, 2); WSADATA wsaData; if (WSAStartup(sockVersion, &wsaData) != 0) { ..原创 2021-05-04 17:01:23 · 359 阅读 · 0 评论 -
Qt 中使用 opencv 库
在MSYS2 下使用QT5 和 MSYS2 下使用 opencv 中介绍了如何在 MSYS 中使用 opencv 和 QT, 下面将它们结合起来, 在QT 中使用 MSYS 中的 opencv 库, 其他C/C++库可以以此作为参考.新建 qt 项目, 比较简单, 跳过在 .pro 文件中加入 opencv 库信息, 主要提供头文件信息和链接信息INCLUDEPATH += C:/Library/win64/msys64/mingw64/include/opencv4LIBS += C:/L原创 2021-05-04 13:44:38 · 792 阅读 · 0 评论 -
MSYS2 下使用QT5
参考官方安装 qtcreator$ pacman -S mingw-w64-x86_64-qt-creator如果需要生成 32 位, 可以安装 mingw-w64-i686-qt-creator, 两个可以同时安装如果需要静态编译, 安装静态库$ mingw-w64-x86_64-qt5-static 静态库会比较大, 同样 32 位为 pacman -S mingw-w64-i686-qt5-static使用 qtcreator在MSYS环境终端输入 qt..原创 2021-05-04 11:31:55 · 592 阅读 · 1 评论 -
MSYS2 下使用 opencv
安装 opencv$ pacman -S mingw-w64-x86_64-opencv查看是否安装成功$ pkg-config --cflags opencv4这里需要带版本 4, 因为安装时 MSYS 仓库上最新版就是 opencv4写个 demo 验证一下:demo.cpp#include <opencv2/opencv.hpp> using namespace cv;int main(){ Mat image = imread("i..原创 2021-05-04 11:31:13 · 1634 阅读 · 5 评论 -
MSYS2 介绍与使用
MSYS2MSYS2 的前世今生Cygwin这一切得从源头说起, 1995年Cygnus的一位工程师Steve Chamberlain, 他观察到Windows 系统使用COFF作为目标文件 (即可执行文件) 格式,与此同时GNU的工具链已经支持x86和COFF的目标文件,并提供C语言库newlib (Newlib 是嵌入式系统上的C标准库的实现) 。他认为既然GNU的工具链已经能够编译生成x86指令集的机器码并可链接生成COFF格式的目标文件, 而且还提供了可移植到任意平台的C标准库newlib,原创 2021-03-28 13:12:32 · 26854 阅读 · 4 评论 -
SDL 播放PCM音频
生成 pcm 音频mp3 截取$ ffmpeg -i test.mp3 -ss 00:00:10 -t 00:00:30 -acodec copy cut.mp3-acodec copy 编码格式复制mp3 转 pcm$ ffmpeg -i cut.mp3 -acodec pcm_s16le -f s16le -ac 2 -ar 44100 test.pcm-f 强制文件格式 -ac 通道数 -ar 采用率源代码demo.c#include <SDL2/SDL.h原创 2021-03-28 13:01:49 · 124 阅读 · 0 评论 -
C 动态与静态链接库
一、动态库纯 C 情况下add.c 文件/* add.c */#include "add.h"int add(int a, int b){ return a + b;}add.h 文件/* add.h */#pragma onceint add(int a, int b);main.c 文件/* main.c */#include <stdio.h>#include "add.h"int main(){ printf原创 2020-12-18 16:13:53 · 96 阅读 · 2 评论 -
C 创建 Lua 调用库
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。比如通过调用 C/C++ 编写的动态库可以使 Lua 执行起来非常高效。下面演示如何编写 C/C++ 动态库并在 Lua 中调用。安装 Lua 和 Lua-dev在下面安装包中 lua5.3 提供了解释器, 而 liblua5.3-dev 提供了 C/C++ 编译环境的头文件和链接库sudo apt-get install lua5.3sudo apt-原创 2020-12-18 16:10:12 · 475 阅读 · 1 评论