Как создать дополнительные инструменты для кафе? - PullRequest
0 голосов
/ 05 марта 2019

В папке Cafe библиотеки инструментов есть несколько инструментов в виде отдельных файлов .cpp https://github.com/BVLC/caffe/tree/master/tools

Я добавил свой собственный инструмент в эту папку и могу собрать его с помощью cmake.

Проблема в том, чтокогда я добавил дополнительную сборку зависимостей (json lib jsoncpp ) на этапе компоновки.

Я поместил файлы json lib .h, .cpp в папку tools/json.

Мой список включает:

#include <iostream>
#include "opencv2/opencv.hpp"
#include "caffe/caffe.hpp"
#include "json/json.h"

Ошибка, которую я получаю, например:

Undefined symbols for architecture x86_64:
  "Json::StyledWriter::write(Json::Value const&)", referenced from:
      image_list_processing(int, char**) in my_tool.cpp.o

Итак, вопрос в том, как добавить lib в процесс компоновки?Должен ли я изменить https://github.com/BVLC/caffe/blob/master/tools/CMakeLists.txt или, может быть, я должен добавить отдельный файл в tools/json/CMakeLists.txt?

1 Ответ

0 голосов
/ 05 марта 2019

Это не ошибка отсутствия файла .h.Вам нужно связать свой код с общим объектом (libjsoncpp.so аналогичного), чтобы ваш код мог обращаться (связывать) скомпилированные функции json.

добавляет -L /path/to/libjson_folder и -ljsoncpp флаги к ссылке этап вашего make-файла.

...