链接到咖啡库的正确方法
Proper way to link to Caffe library
我正在为我的项目使用咖啡库。
我的CMakeLists.txt
文件如下
cmake_minimum_required(VERSION 2.6)
PROJECT(endtoendlib)
set(Caffe_DIR "/home/Softwares/Libraries/caffe-master/build/cmake")
include_directories( ${PROJECT_BINARY_DIR})
# Find Caffe
FIND_PACKAGE(Caffe REQUIRED)
# adding sources to target
add_executable(endtoendlib endtoendLstm.cpp)
target_link_libraries(endtoendlib ${Caffe_LIBS})
当我运行cmake ..
时,我有错误
CMake Warning (dev) at
/home/Softwares/Libraries/caffe-master/build/cmake/CaffeConfig.cmake:22
(if):
given arguments:
"ON"
An argument named "ON" appears in a conditional statement. Policy CMP0012
is not set: if() recognizes numbers and boolean constants. Run "cmake
--help-policy CMP0012" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
Call Stack (most recent call first):
CMakeLists.txt:9 (FIND_PACKAGE)
This warning is for project developers. Use -Wno-dev to suppress it.
如何解决问题?
有没有更好的方法来链接到咖啡库及其配件?
对于那些难以使用 cmake 从 c++ 项目链接到 caffe 库的人,以下是 CMakeLists.txt 我可以成功使用。请根据您的设置更改为正确的路径。
cmake_minimum_required(VERSION 2.6)
cmake_policy(SET CMP0012 OLD)
PROJECT(endtoendlib)
if(ON)
if(NOT OpenCV_FOUND)
set(Caffe_OpenCV_CONFIG_PATH "/usr/local/share/OpenCV")
if(Caffe_OpenCV_CONFIG_PATH)
get_filename_component(Caffe_OpenCV_CONFIG_PATH ${Caffe_OpenCV_CONFIG_PATH} ABSOLUTE)
if(EXISTS ${Caffe_OpenCV_CONFIG_PATH} AND NOT TARGET opencv_core)
message(STATUS "Caffe: using OpenCV config from ${Caffe_OpenCV_CONFIG_PATH}")
include(${Caffe_OpenCV_CONFIG_PATH}/OpenCVModules.cmake)
endif()
else()
find_package(OpenCV REQUIRED)
endif()
unset(Caffe_OpenCV_CONFIG_PATH)
endif()
endif()
# Compute paths
get_filename_component(Caffe_CMAKE_DIR "/home/Softwares/Libraries/caffe-master/build/cmake" PATH)
set(Caffe_INCLUDE_DIRS "/home/Softwares/Libraries/caffe-master/include")
list(APPEND Caffe_INCLUDE_DIRS "/usr/include")
list(APPEND Caffe_INCLUDE_DIRS "/usr/local/cuda-8.0/include")
list(APPEND Caffe_INCLUDE_DIRS "/usr/local/include/opencv")
list(APPEND Caffe_INCLUDE_DIRS "/usr/include/atlas")
list(APPEND Caffe_INCLUDE_DIRS "/home/Softwares/Libraries/caffe-master/build/src/")
# Our library dependencies
#if(NOT TARGET caffe AND NOT caffe_BINARY_DIR)
include("/home/Softwares/Libraries/caffe-master/build/ccmake/CaffeTargets.cmake")
#endif()
# List of IMPORTED libs created by CaffeTargets.cmake
set(Caffe_LIBRARIES "/home/Softwares/Libraries/caffe-master/build/lib/libcaffe.so")
# Definitions
set(Caffe_DEFINITIONS "-DUSE_OPENCV;-DUSE_LMDB;-DUSE_LEVELDB")
# Cuda support variables
set(Caffe_CPU_ONLY OFF)
set(Caffe_HAVE_CUDA TRUE)
set(Caffe_HAVE_CUDNN FALSE)
include_directories( ${PROJECT_BINARY_DIR} ${Caffe_INCLUDE_DIRS})
# adding sources to target
add_executable(endtoendlib endtoendLstm.cpp)
target_link_libraries(endtoendlib ${OpenCV_LIBS} ${Caffe_LIBRARIES} -lglog -lprotobuf -lboost_system)
如果您有类似以下内容的错误,则表示您没有使用WITH_PYTHON_LAYER := 1 in Makefile.config
构建咖啡
Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: ImageData (known types: AbsVal, Accuracy, ArgMax, BNLL, BatchNorm, BatchReindex, Bias, Concat, ContrastiveLoss, Convolution, Crop, Data, Deconvolution, Dropout, DummyData, ELU, Eltwise, Embed, EuclideanLoss, Exp, Filter, Flatten, HDF5Data, HDF5Output, HingeLoss, Im2col, InfogainLoss, InnerProduct, Input, LRN, LSTM, LSTMUnit, Log, MVN, MemoryData, MultinomialLogisticLoss, PReLU, Parameter, Pooling, Power, RNN, ReLU, Reduction, Reshape, SPP, Scale, Sigmoid, SigmoidCrossEntropyLoss, Silence, Slice, Softmax, SoftmaxWithLoss, Split, TanH, Threshold, Tile)
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- C++为构建时间获取QDateTime的可靠方法
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 使用std::函数映射对象方法
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- C++从另一个类访问公共静态向量的正确方法是什么
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 没有为自己的结构调用列表推回方法
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在类定义之后定义一个私有方法
- 枚举环境变量的惯用C++14/C++17方法
- 链接到咖啡库的正确方法