
C++编程
泥石流中的一股清流
不可能打工的,这一辈子也不可能打工的。
展开
-
ncnn的alignSize内存对齐公式原理解析
ncnn的alignSize内存对齐公式推导原创 2022-10-25 17:09:55 · 413 阅读 · 1 评论 -
搭建nginx流媒体服务器
nginxffmpeg源码编译安装FFmpeg首先下载源码ffmpeg源码wget https://www.ffmpeg.org/releases/ffmpeg-4.3.1.tar.xz # 下载xz -d ffmpeg-4.3.1.tar.xz # 解压 .xztar xvf ffmpeg-4.3.1.tar # 解压 .tar配置./configure --enable-shared # 配置生成链接库make -j12安装nginx相关需要的依赖pcre.原创 2020-07-14 17:36:26 · 310 阅读 · 0 评论 -
nvidia tx2 安装c api 的tensorflow库
https://devtalk.nvidia.com/default/topic/1058253/jetson-nano/request-for-prebuilt-tensorflow-c-c-api-libs-for-jetson-nano/原创 2019-11-13 11:36:33 · 468 阅读 · 1 评论 -
Ubuntu下设置库的头文件路径以及链接路径
有时候我们自己编译了一个库或者编译了boost或者其他库时候,不想将编译后的Include以及link文件放入系统文件中,那么我们可以通过声明环境变量来指定系统的查找路径INCLUDE_PATH头文件路径仅仅需要将XXX用编译库的头文件路径取代然后放入~/.bashrc中export INCLUDE_PATH=${INCLUDE_PATH}:XXXLIBRARY_PATH链接路径...原创 2019-03-23 18:54:43 · 7082 阅读 · 0 评论 -
Ubuntu下使用ffmpeg4.0的C++上API生成视频文件
前言ubuntu下源码搭建以及链接ffmpeg文件比较容易搭建主要步骤为1.下载、2…/configure、3.make,然后使用命令行工具进行测试。这些比较容易。然鹅,如何写一个自己的程序通过调用ffmpeg库C++的API呢?于是把官方源码拿出来编译,找CMakeList如何链接ffmpeg,报错、又找、有报错。不断进行着,头都快大了,最终花费几天时间终于成功了,只能说都9102年了,源码编...原创 2019-04-22 14:24:15 · 1181 阅读 · 0 评论 -
Clion中使用makefile文件取代CMake
CLion中仅仅支持CMakeList.txt文件进行配置,为了使用CLion支持makefile文件,需要通过一些方法进行改变转自Using local makefile for CLion instead of CMake安装compiledbpip install compiledb进入相关包含makefile的文件目录,执行compiledb命令,如果有需要./config...翻译 2019-04-18 16:36:17 · 7569 阅读 · 5 评论 -
Opencv中的Mat表示单像素点的值失败解决方法
今天使用cv::Mat并直接通过.data操作想表示像素点的值,单发现表示失败,最后通过reinterpret_cast<float *>强制转换才成功表示reinterpret_cast作用可用于任意指针类型之间的转换,以及指针足够大的整数类型之间转换,不改变底层二进制文件,仅仅改变指针的解释类型。static_cast有继承关系类的指针和内置数据类型的转换(和C的内置...原创 2019-04-29 09:34:41 · 347 阅读 · 0 评论 -
--whole-archive 和 --no-whole-archive的区别
参考gcc和ld 中的参数 --whole-archive 和 --no-whole-archiveCMake中有时候会碰到 链接-Wl以及–whole-archive,它并不是一个库,而是gcc的编译选项if(NOT MSVC AND NOT APPLE) set(BEGIN_WHOLE_ARCHIVE -Wl,--whole-archive) set(END_WHOLE_ARCHI...原创 2019-06-26 17:39:07 · 9780 阅读 · 1 评论 -
使用Mxnet进行人脸识别
首先通过源码编译mxnet,然后CMakeList.txt链接相应的库文件源码链接链接:https://pan.baidu.com/s/186Vs1NoceCDNasFDbs149Q 密码:2ox5网络仅仅需要修改CMakeList中Caffe库的路径以及Mxnet源路径,即可运行测试发现速度远没有Python端的快,不知道是什么原因,不想再折腾Mxnet了,最近准备用caffe重写in...原创 2019-07-04 10:22:59 · 1256 阅读 · 0 评论 -
使用caffe版本ssd模型进行测试视频流或者图片
代码链接在**使用cd $HOMEmkdir buildcd buildcmake …make -j7进行编译,可以看到main.cpp中的main中三个值,设置好三个值并且选择model下的文件,将训练好的文件更改名就能开始训练了// 测试图片的路径const string& testPath = "./test/imgs/";// save_path 设置存储图片...原创 2019-03-07 12:59:46 · 1233 阅读 · 0 评论 -
cmake编译clBLAS库出现The LOCATION property should not be read from target "test-correctness". Use the t
解决方法cmake编译带上参数进行编译:cmake …/src -DBUILD_TEST=False错误:-- You have confirmed OpenCL 1.2 is supported in your system-- Target platform: 64-bit-- Using default OpenCL Compiler-- OPENCL_INCLUDE_D...原创 2019-01-24 10:02:50 · 1077 阅读 · 1 评论 -
CMakeList常用方法
废话主要说明了一些cmake常用语法CMake常用预定义变量PROJECT_SOURCE_DIR 所运行的CMakeList.txt所在文件夹下的工程目录CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的目录在cmake还可以添加c++文件中的宏定义:add_compile_definitions()...原创 2018-09-13 14:47:29 · 2816 阅读 · 0 评论 -
C/C++ 信号处理(signal handling)
*信号是由操作系统传递给进程的软件中断。信号也可以由操作系统基于系统或错误条件发出。对某些人来说,存在默认行为(即当进程通过按下 ctrl + C 接收到中断SIGINT信号时,该进程终止),但本教程将演示如何通过定义回调函数来管理该信号处理该信号。在可能的情况下,这允许关闭文件并执行操作并以程序员的方式做出反应 *参考C/C++ signal handling信号类型常用信号信...翻译 2018-09-20 09:50:37 · 4016 阅读 · 0 评论 -
C++ 中Boost 文件操作
读取文件夹下的相应拓展名文件通过CMakeList链接boost库的文件操作目录find_package(Boost REQUIRED COMPONENTS system filesystem)include_directories(${Boost_INCLUDE_DIRS})target_link_libraries(tmp ${Boost_LIBRARIES})main...原创 2018-11-07 18:41:43 · 1012 阅读 · 0 评论 -
C++文件流操作
读取文件假如需要按行读取下列文件,并且分别通过不同变量读取路径以及数字,则可以通过C++流操作/home/ubuntu/demo.jpg 1/home/ubuntu/result.jpg 0代码:#include <iostream>#include <fstream>int main(int argc, char** argv) { std:...原创 2018-11-13 10:22:45 · 605 阅读 · 0 评论 -
C++中各种常见库在cmake中的查找
lmdb库的查找通过下列命令查找到后,仅仅需要将LMDBINCLUDEDIR和{LMDB_INCLUDE_DIR}和LMDBINCLUDEDIR和{LMDB_LIBRARIES}分别包含和链接到项目中find_path(LMDB_INCLUDE_DIR NAMES lmdb.h PATHS &amp;quot;$ENV{LMDB_DIR}/include&amp;quot;)find_library(LMDB_LI...原创 2018-11-14 09:29:51 · 737 阅读 · 0 评论 -
使用CLion进行远程Debug
同步文件同步文件需要安装ftp进行文件同步,安装教程可以参看这里通过项目文件同步后,接来下通过CLion和gdbserver进行远程DebugClion远程调试在服务器上编译需要运行的C++项目,cmake编译属性需要有:cd ${PROJECT_SOURCE}mkdir build & cd buildcmake . -DCMAKE_BUILD_TYPE=Debugm...原创 2018-11-14 14:00:57 · 4404 阅读 · 1 评论 -
std::move解决Boost::share_ptr的多重析构问题
使用vector容器存储boost::share_ptr变量,当我们想要通过调用vector中的方式clear()时,会发现boost::share_ptr并没有被释放,而我们可以通过std::move来存储右值引用来解决这个问题。运行下列代码:#include <vector>#include <iostream>#include <boost/shared...翻译 2018-11-20 09:26:33 · 1370 阅读 · 1 评论 -
CMake链接指定文件目录下的库
有时候我们编译的库的版本不同时,需要通过CMake制定,假如直接使用Cmake链接,默认链接系统文件下的库。当需要链接用户目录的库时,则需要在CMakeList.txt中指定。假如系统中的Opencv版本是OpenCV 2,而我们需要用到的版本是OpenCV 3,则通过编译OpenCV3后,通过设置OpenCV_DIR变量来设置OpenCV的查找路径,故在CMakeList.txt中添加...原创 2019-01-02 08:29:35 · 12203 阅读 · 1 评论 -
#define宏定义中的#和##用法和区别
参考Difference between # and ##简单来说,在宏定义中,#是将变量转换成字符串的作用,而##是连接两个参数作用###exaplem#include <iostream>#define stringize_indirect( a ) stringize(a)#define stringize( a ) #a#define paste( a, b ) ...翻译 2018-09-18 08:45:03 · 828 阅读 · 0 评论