使用BOB C++接口的工程实例

bob.example.cmake的Python项目详细描述


http://travis-ci.org/bioidiap/bob.example.cmake.svg?branch=v1.0.1https://img.shields.io/badge/github-master-0000c0.png
< H2>使用鲍伯的C++接口< /H2>的示例工程

此示例项目展示了将鲍伯的C++库集成到C++项目中的方法。 为此,is使用CMake接口和一个自行开发的FindBob.cmake文件。 它依赖于python接口来下载和安装Bob。 有关bob安装的更多信息可以在其webpage上找到。

此软件包是根据BSD-3许可证授权的,版权归科罗拉多大学的摄政者所有,代表科罗拉多大学的Colorado Springs。 有关详细信息,请参阅许可证文件。

构建这个示例

由于示例需要安装一些Bob包,因此我们首先运行安装Bob的方法之一,即使用buildout。 为此,只需转到此软件包的主目录并拨打电话:

$ python bootstrap-buildout.py
$ ./bin/buildout

这将把一些包签出到src目录,并将一些包下载到eggs目录。 如果您在全球安装了bob,它将使用全球安装的软件包,而不是下载新的鸡蛋。 如果bob安装在非默认目录中,例如virtual environment,则可以使用该python版本引导。

在这个包中,我准备了一个小型的CMake项目,其中包括一些Bob包。 它使用FindBob.cmake来定位bob的include目录和库。 要启用该功能,可以使用find_package(Bob COMPONENTS <package(s)> REQUIRED)命令查找bobpackage(s)的列表。 稍后,您可以使用三个CMake变量Bob_INCLUDE_DIRSBob_LIBRARY_DIRSBob_LIBRARIESBob_DEFINITIONS,并将其添加到项目中:

cmake_minimum_required(VERSION 2.8)
project(test)

# Set the module path so that "FindBob.cmake" is found
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR})

# Find all Bob packages recursively
find_package(Bob COMPONENTS bob.io.image REQUIRED)

# Add Bob's include directories
include_directories(${Bob_INCLUDE_DIRS})
# Add Bob's library directories
link_directories(${Bob_LIBRARY_DIRS})
# Add Bob's libraries
link_libraries(${Bob_LIBRARIES} boost_system)
# Add Bob's definitions
add_definitions(${Bob_DEFINITIONS})

# create an "my_test" executable from file "test.cpp"
add_executable(my_test test.cpp)

出于某种原因(我不明白),我们还需要添加boost_system库,尽管理论上它应该已经链接到Bob库了。

所以,现在我们可以使用CMake

$ mkdir build
$ cd build
$ cmake ..
$ make

我们应该在构建目录中得到一个可执行文件my_test。 请注意,您可以将变量传递给cmake以使用自定义Bob安装:

$ cmake .. -DBOB_PREFIX_PATH=/path/to/your/bob/installation

或者相应地设置BOB_PREFIX_PATH环境变量。 如果您有一个本地目录,其中包含srceggs子目录中的(某些)bob包,则可以设置BOB_SOURCE_DIR变量,该变量默认为CMakeLists.txt所在的目录:

$ cmake .. -DBOB_SOURCE_DIR=/path/to/your/local/bob/packages

目录的评估顺序为:

  1. ${BOB_SOURCE_DIR}/src
  2. ${BOB_SOURCE_DIR}/eggs
  3. ${BOB_PREFIX_PATH}/lib/*/site-packages(其中*通常是您的python版本)
  4. 系统路径

要运行该示例,请返回到package base目录(否则将找不到示例图像),然后调用:

$ ./build/my_test

这将在当前目录中创建一个名为test.hdf5的hdf5文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何访问Struts2中的请求参数?   java将大图像设置为背景   java如何使用子查询。在里面   java我希望我的计算器重新启动,直到我按下“q”字母   将Java Http服务器的响应写入jQuery   java JPA/HSQLDB仍然在消耗我所有的内存   使用MySql结果集数据在Java Swing应用程序中创建图形和图表   java创建一个程序,从用户那里获取输入并将其写入输出文件   java Windows无法删除具有大路径的文件   java方法运行它3次   java如何仅为Http状态代码500配置RetryTemplate?   java读取,从JAR写入外部xml文件   如何在安卓 java中实现自定义导航栏,如图所示   java使用ApacheCamel框架将数据持久化为Oracle DB中的BLOB/CLOB数据类型