使用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安装Solr PHP java_主页错误   java如何识别ObjectInputStream是否有可用的对象?   JavaSpringMVC导航路径   java dom4j我想在处理指令后消除空行   java如何进行lastIndexOf与indexOf的比较?   java如何在Spring Boot中迭代设计视图(HTML/CSS)?   java如何使用jackson自定义序列化程序序列化复合对象?   java如何在jenkins上启用调试日志记录?   java AutoCloseable协定:close()中允许写入资源?   java以编程方式返回到launcher 安卓   多线程Java是否有内置的“反向”SwingWorker   javacom。亚马逊。AmazonServiceException:只能使用“筛选器表达式”、“查询筛选器”或“关键条件”中的一种   java如何解析Kotlin中截取的来自服务器的错误   尝试在Java中初始化Bouncy Castle密码时aes密钥长度不是128/192/256位   从Url java读取JSON