因工作需要,需在marvell平台上交叉编译出一个静态链接opencv的可执行文件,只调用了其中的imread,resize等少数几个函数。所以我最终只交叉编译了一部分的链接,video相关的基本都没有编译,这个后续也会描述到。因为是初次接触opencv,之前交叉编译的经验也都没记录下来,特此留存,便于后续查阅。 我将最终要实现交叉编译的过程分成四个阶段来执行,因工作中没有整片
转载 2024-08-12 17:32:03
357阅读
cmake来编译OpenCV程序还是很方便的。    在D:/test目录下有一个含有opencv api的源文件facedetect.cpp,现要将其编译为DisplayImage.exe程序,首先创建一个文件CMakeLists.txt文件,内容如下:cmake_minimum_required(VERSION 2.8)       &nbs
转载 2023-08-27 00:51:25
302阅读
一、静态创建1. 准备首先创建目录和文件结构如下:文件内容如下:class Hello { public: void print(); };#include "hello.h" #include <iostream> void Hello::print() { std::cout << "hello world!" << std::endl; }proj
有时我们只需要编译出动态静态,然后等着让其它程序去使用。让我们看下这种情况该如何使用cmake实验实验一:生成静态编写代码项目结构如下:[CMakeLists.txt] - 包含你希望运行的 CMake 命令cmake_minimum_required(VERSION 3.5) project(hello_library) ###############################
第一步:准备工具1.1、下载opencv2.4.10源码包,官网下载地址:https://opencv.org/news.html1.2、安装Cmake-gui,Cmake-gui在上一篇博客已经介绍,不会的可以出看,这里不介绍如何安装Cmake-gui。1.3、一台安装有ubuntu1404系统的电脑。第二步:开始编译opencv2.4.10源码2.1、把下载下来的opencv2.4.10解压出
五、静态与动态构建读者云,太能罗唆了,一个Hello World就折腾了两个大节。OK,从本节开始,我们不再折腾Hello World了,我们来折腾Hello World的共享。本节的任务:1、建立一个静态和动态,提供HelloFunc函数供其他程序编程使用,HelloFunc向终端输出Hello World字符串。2、安装头文件与共享。 (一)、准备工作:在/backup/
opencv静态编译静态编译就是说可以将你编译出来的可执行文件放到没有配置什么环境的电脑里,直接运行;而动态编译则需要将用到的文件放到相应位置,windows下将需要的文件放到根目录即可,linux则需要放到系统路径中。首先明确一点:想做自己写的程序的静态编译,例如写一个关于opencv的代码,首先需要将opencv进行静态编译,网上有各种教程。windows上将opencv源码进行静态
在实际项目中,往往需要将一些基础或者算法库发布出去,但是不同项目可能需要用到不同的子模块,此时为了保持简洁,可能需要合并多个静态为一个。在笔者的实际工作中,合并静态的需求还是有的,而且大多数时候都是基于CMake的项目,所以希望能够基于不同配置,自动合并多个模块的静态为一个,方便发布版本和管理。本文介绍的就是如何在CMake工程中,优雅地完成多个静态目标的合并。本文仍以本系列的开源项目h
目录静态和动态的区别构建示例ADD_LIBRARY同时构建静态和动态SET_TARGET_PROPERTIES动态的版本号安装共享和头文件使用外部共享和头文件解决 :make后头文件找不到的问题解决:找到引用的函数问题特殊的环境变量CMAKE_INCLUDE_PATH和CMAKE_LIBRARY_PATH任务:1、建立一个静态和动态,提供HelloFunc函数供其他程序编程使用,H
转载 2023-12-15 14:43:57
108阅读
动态静态静态:多个.o文件的打包,可以将直接插入生成的可执行文件中,可执行文件在运行时无需找.a文件,自己可以独立运行。但是,当a.o和b.o都使用了某函数时,该函数的源码会被拷贝两次到.a,这样就会浪费空间。 动态:可执行文件运行时能在同目录或者系统目录找到.so文件,才可以正常运行,否则会报错说找不到动态文件。相关命令add_library()作用:生成动态静态 第1个参
转载 2023-10-11 11:36:14
176阅读
文章目录CMake 构建静态和动态CMake 构建静态CMake 构建动态同时构建静态和动态设置动态版本号CMake 调用文件安装文件调用文件 CMake 构建静态和动态本章介绍 CMake 构建静态和动态的方法,先看看静态和动态的区别:静态的扩展名一般为 *.a 或 *.lib;动态的扩展名一般为 *.so 或 *.dll ;静态在编译时会直接整合到目标文
CMake 常用总结二:CMake 生成静态与动态引言CMake 生成静态和动态的区别CMake 生成简单实例CMake 同时构建静态与动态使用外部动态和头文件CMake 语法reference 引言CMake 实践帮助我们对 CMake 有一个系统全面的了解,并且有大量示例以供参考,至少在实际项目中可以让我们有能力看懂并修改项目中现有的 CMake 。 阅读完 CMake
引言最近在做毕业设计的过程中,想要在未安装OpenCV环境的机器上运行我的OpenCV+MFC代码。但是从OpenCV3.1开始官方默认使用动态的形式发布。我想使用静态通过静态链接来将所用到的链接进exe文件中,所以进行了OpenCV源码的静态编译。 l步骤1.安装OpenCV,并找到源码安装OpenCV就不讲了,源码在安装目录的sources文件夹中2.运行CMake进入CMake安装目录
转载 2024-04-03 12:47:28
402阅读
1点赞
  若在创建MFC程序时没有选择在静态中使用MFC也没有关系。在工程属性-常规-中设置  将 在共享DLL中使用MFC 改为静态。   接下来到c++选项-代码生成 页面,将运行库/MD (/MDd)改为/MT (/MTd对应debug版本,既然要发布,也没必要用debug版本吧),更改了这两个设置,重新编译的MFC程序就是静态编译了的,拷贝到其他机器上不
目录一、源文件1.Message.h2.Message.cpp3.helloworld.cpp二、CMakeLists.txt1.源文件2.CMake语言说明(1)cmake_minimum_required(2)project(3)add_library(4)add_executable(5)target_link_libraries三、cmake配置及编译1.cmake配置2.构建/编译【扩展
转载 2023-07-25 20:08:18
568阅读
前两节简单的介绍了,cmake的简单使用和install的过程,本节将详细介绍构建动态静态,以及共享动态静态的过程文件存放方式: 创建test根目录,然后创建lib和build,在根目录下创建CMakeLists.txt,,在lib目录下创建CMakeLists.txt、hello.cpp、hello.h, 其中hello.cpp、hello.h内容如下:hello.h #i
一、OpenCV下载opencv下载地址 opencv_contrib下载地址 注意opencv以及opencv_contrib的版本最好对应二、OpenCV编译安装2.1 cmake编译安装下载下来后,进入源码目录(即CMakeLists.txt的同级目录)新建build目录mkdir build运行cmake命令,注意针对OpenCV的编译,该命令有许多选项,这里仅给出我自己常用的 所有的Op
CMake构建静态与动态一、任务二、准备工作三、编译共享四、ADD_LIBRARY指令五、编译静态5.1、SET_TARGET_PROPERTIES指令5.2、GET_TARGET_PROPERTY指令六、动态版本号七、安装共享和头文件八、使用外部共享和头文件8.1、准备工作8.2、引入头文件搜索路径8.3、为 target 添加共享九、使用外部静态和头文件十、特殊的环境变量总
转载 2023-11-28 06:10:07
245阅读
新建工程t3,t3的目录结构如下: [plain] view plain copy 在CODE上查看代码片派生到我的代码片 t3 ├── build ├── CMakeLists.txt └── lib ├── CMakeLists.txt ├── hello.c └── hello.h t3/li
转载 2017-03-30 15:58:00
210阅读
2评论
在使用Linux操作系统进行开发时,经常会遇到需要使用静态来链接到自己的项目中。而在Linux平台上,使用CMake来管理项目和构建是一种常见的做法。本文将探讨如何在Linux上使用CMake来链接静态。 首先,让我们了解一下什么是静态静态是一种包含预编译对象文件的归档文件,通常具有“.a”扩展名。静态可以通过链接到可执行文件中来提供所需的函数和符号,从而使可执行文件具有所需的功能。
原创 2024-03-26 11:08:40
158阅读
  • 1
  • 2
  • 3
  • 4
  • 5