第一次从GitHub移植一个项目,浅记录一下(window环境)
被移植的Github项目地址:http://code.google.com/p/bgslibrary/ ,一个关于移动侦测中背景减除(Background Subtraction)的库,库里包含了多种算法。
1.下载项目的.zip文件(这里也可以使用git克隆),笔者这里是直接下载.zip放在了E:/Pack路径下
2.解压缩压缩文件夹后用cmake-gui构建
配置后,配置生成:
在cmd中输入:
cd E:/Pack/bgslibrary/buildmingw
cmake --build . --config Release
mingw32-make install
成功后会生成 C:/Program Files (x86)/bgslibrary
因为C盘我一般不乱放东西,所以又把它复制到了E盘命名为bgslibrary-buildmingw
到这里就移植成功了,因为移植的是一个库,为了方便后续使用,添加PATH环境变量
我的疑惑点:编译过后得到的bgslibrary和原先用于cmake-gui的bgslibrary有什么不同?
Ai解答:
当你通过 CMake 和编译过程构建
bgslibrary
并最终在E:\Pack\bgslibrary-buildmingw
目录下得到bin
、include
和lib
文件夹时,你得到的是一个编译后的安装版本。这与最初用于 CMake-GUI 的源代码版本有一些关键区别:
源代码 vs. 编译后的文件:
源代码版本:最初用于 CMake-GUI 的
bgslibrary
包含源代码文件(如.cpp
、.h
文件),以及构建系统文件(如CMakeLists.txt
)。编译后的版本
:在E:\Pack\bgslibrary-buildmingw目录下,你得到的是编译后的二进制文件和库文件,包括:
bin
目录:包含可执行文件(如bgslibrary.exe
)。lib
目录:包含库文件(如libbgslibrary_core.dll
和libbgslibrary_core.dll.a
)。include
目录:包含头文件,用于在其他项目中包含和链接库。构建系统文件:
- 源代码目录通常包含
CMakeLists.txt
和其他 CMake 构建脚本,这些文件定义了如何构建项目。- 编译后的安装目录不包含这些构建系统文件,因为它们只在构建过程中使用。
配置文件:
- 源代码目录可能包含配置文件(如
.xml
或其他配置格式),这些文件用于配置库的行为。- 编译后的安装目录可能不包含这些配置文件,或者可能包含一些预配置的文件,具体取决于构建过程中的配置。
依赖关系:
- 源代码目录可能依赖于特定的构建环境和依赖库(如 OpenCV)。
- 编译后的安装目录通常包含所有必要的二进制文件,但可能仍然需要确保相应的依赖库(如 OpenCV 的 DLL 文件)在运行时可用。
可移植性:
- 源代码目录可以在不同的系统和环境中重新构建,只需配置适当的构建选项。
- 编译后的安装目录是为特定的构建环境和配置生成的,可能不适用于其他环境。
示例和文档:
- 源代码目录可能包含示例代码、文档和其他辅助文件,这些文件有助于理解和使用库。
- 编译后的安装目录可能不包含这些示例和文档文件。
总结
文档:
- 源代码目录可能包含示例代码、文档和其他辅助文件,这些文件有助于理解和使用库。
- 编译后的安装目录可能不包含这些示例和文档文件。
总结
编译后的
bgslibrary
安装目录主要包含运行和使用库所需的二进制文件和头文件。相比之下,源代码目录包含构建项目所需的所有文件和资源,以及可能的示例和文档。如果你需要重新构建或修改bgslibrary
,你需要源代码目录;如果你只需要使用库,编译后的安装目录就足够了。
最后,感谢以下文章提供的帮助:
Qt5 与OpenCV4教程一:Qt5.12安装与OpenCV4.5.0配置
如何通过Git +Cmake运行代码