C/C++
AlanWang4523
这个作者很懒,什么都没留下…
展开
-
Emscripten + CMakeLists.txt 将 C++ 项目编译成 WebAssembly(.wasm)/js,并编译 Html 测试
上篇文章已讲解如何安装配置 Emscripten 环境。本篇文章主要讲解如何将基于 CMakeLists 配置的 C++ 项目编译成 WebAssembly 库来供 Web 前端使用。编译结果会生成 .wasm、.js,测试代码会生成 .wasm、.js、.html。原创 2023-10-31 19:18:18 · 3840 阅读 · 5 评论 -
Mac 上安装 Emscripten
背景:Web 端需要使用已有的 C++ 库,需要将 C++ 项目编译成 WebAssembly(.wasm) 供 js 调用。可以将 C++ 编译成 .wasm。原创 2023-10-30 18:31:16 · 1347 阅读 · 0 评论 -
MNN 静态库的编译及使用(libMNN.a 运行报错问题解决)
MNN 静态库编译及使用 libMNN.a 运行报错问题解决原创 2020-06-30 14:27:40 · 2417 阅读 · 0 评论 -
OpenCV实现将任意形状ROI区域置黑(多边形区域置黑)
实现 opencv 多边形区域置黑,OpenCV 实现将任意形状ROI区域置黑原创 2019-10-23 20:06:19 · 6503 阅读 · 0 评论 -
C/C++ Main获取命令行参数
在用 C/C++ 写一些工具时,需要通过命令行传一些参数,这样就可以在命令行终端使用该工具或在脚本中使用该工具,从而实现批量处理。比如近期需要实现一个对文件进行加解密的工具,我需要通过命令行传递如下参数:需要处理的输入文件;处理类型:加密还是解密;处理多少长度;输出文件;1、函数说明本文采用的短参数,函数定义如下:#include <unistd.h> //系统头...原创 2019-09-28 13:41:17 · 10947 阅读 · 2 评论 -
Android JNI 编程之动态注册(设置返回 long float double 型数据)
jni静态注册和 jni动态注册,jni返回double型数据, jni返回float型数据,jni返回long型数据,jni返回java对象,jni返回传递对象静态注册理解和使用方式简单, 使用相关工具按流程操作就行, 编码出错率低JNI 层函数名特别长,且当需要更改类名,包名或者方法时, 需要按照之前方法重新生成头文件, 灵活性不高初次调用 native 函数时要根据函数...原创 2019-05-18 21:14:58 · 1036 阅读 · 1 评论 -
OpenCV C/C++实现图像拼接(opencv 贴小图到大图)
利用 OpenCV 实现将多张小图拼接成一张大图,并支持小图放任意位置。OpenCV C++实现图像拼接,opencv 贴小图到大图,opencv 贴多张图到大图原创 2019-03-06 21:53:58 · 7627 阅读 · 1 评论 -
OpenCV 绘制人脸检测框和关键点
在做人脸检测时,我们需要将检测的结果绘制到图片上查看效果,这时可以利用 OpenCV 的基本绘图函数将人脸检测框和人脸关键点绘制到原图上。关键代码如下:// TODO FaceDetectEngine 初始化cv::Mat image = cv::imread(test_file, cv::IMREAD_UNCHANGED);// 原始图像cv::Mat gray;cv::cvtCol...原创 2018-11-16 20:06:16 · 7378 阅读 · 2 评论 -
OpenCV Mat 数据读写
1、创建 Mat 对象:// 创建一个 320x240 的 8 位无符号型 4 通道全 0 的 Matcv::Mat mBGRAImg = cv::Mat::zeros(320, 240, CV_8UC4);// 创建一个 320x240 的 8 位无符号型 1 通道全 0 的 Matcv::Mat mGrayImg = cv::Mat::zeros(320, 240, CV_...原创 2018-11-07 21:39:22 · 14973 阅读 · 0 评论 -
使用 cmake 编译可执行文件
如我们写好源代码和主函数,可以不使用 IDE 直接用命令行编译成可执行文件。比如需要提供一个工具程序提供给后端通过命令行调用。可能有的人认为直接编译成可执行文件给别人不就 OK 了吗?但问题来了,你本地编译的平台和架构可能和别人的不一样,直接给别人编译好的可执行文件可能跑不起来,举个栗子,我本地是 Mac 电脑,我编译好的执行文件在 Mac 电脑上跑没问题,但服务端同学是 Linux 的就跑不...原创 2018-08-15 13:15:04 · 43455 阅读 · 2 评论 -
编程技巧之用 do{}while(false) 进行多错误处理
编程中我们经常会遇到这样的问题,一个函数中有很多处理逻辑,每个步骤都有可能出错,对于出错的要做相同的错误处理,错误出口很多。那么通常我们怎么处理呢?一般有两种处理方式:if else 多层嵌套如下,可以看到这种处理嵌套逻辑特别深void function() { if(a != null) { if(b() == true) { if(c() == ...原创 2018-06-30 15:47:01 · 927 阅读 · 0 评论 -
CMake Error: undefined reference to 'vtable for IDenoise'
/Users/XXXXXXX/git/xxxxx/libraries/mediacore/src/main/cpp/audio/webrtc/IDenoise.h:12: error: undefined reference to 'vtable for IDenoise' /Users/XXXXXXX/AndroidDev/sdk/ndk-bundle/toolchains/arm-lin原创 2017-11-09 11:40:35 · 1757 阅读 · 0 评论 -
CMake Error: shared library text segment is not shareable
在编译ffmpeg时遇到以下错误/Users/XXXXX/Alan/MyAndroidPro/FfmpegLib/app/src/main/cpp/libs/x86/lib/libavutil.a -lm -lz -latomic -lm "/Users/XXXXX/AndroidDev/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x...原创 2017-11-09 11:29:22 · 2109 阅读 · 0 评论