在tools文件夹下的caffe库下,一些工具作为单个.cpp文件 https://github.com/BVLC/caffe/tree/master/tools
我在此文件夹下添加了自己的工具,可以通过cmake进行构建。
当我添加其他依赖项(json lib jsoncpp)构建时,该问题在链接阶段失败。
我已将json库.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
下添加单独的文件?
答案 0 :(得分:1)
这不是丢失.h
文件的错误。您需要将代码链接到共享库(类似的libjsoncpp.so
),以便代码访问(链接)已编译的json函数。
将-L /path/to/libjson_folder
和-ljsoncpp
标志添加到生成文件的 linking 阶段。