如果您想在caffe中构建自定义文件,有两种方法:
简单的方法
- 进行必要的更改并将文件(在您的情况下是classification.cpp)保存在位于caffe根目录下的examples文件夹中的一个目录中(例如test)。
- 运行“make”。这将自动添加必要的cxxflags和ldflags,并编译您的代码并将可执行文件放置在build/examples/test文件夹中。这也确保设置了标志CPU_ONLY(如Makefile.config中所述)。
困难的方法
- 运行没有漂亮打印选项的make(在Makefile.config中提到)。您将能够看到用于构建示例和工具的编译和链接选项。您可以复制并粘贴这些选项(并根据需要更改相对路径)来编译您的文件。
希望这可以帮助您。
编辑
由于op请求一种简单的方法,因此可以按照以下方式完成:
这是一个非常简单的示例,我鼓励OP参考完整的在线文档和cmake使用示例。
要求
- 必须使用cmake构建Caffe - 相对容易,因为当前的主分支已经定义了CMakeLists和所有内容。使用Cmake-gui或ccmake设置您的选项。
现在,我假设您的项目结构如下。
-project
- src
- class1.cpp
- CMakeLists.txt ( to be added )
- include
- class1.hpp
- main.cpp
- CMakeLists.txt ( to be added )
文件(src)
最少需要包含以下行:
cmake_minimum_required(VERSION 2.8)
find_package(OpenCV REQUIRED)
add_library( c1 class1.cpp )
注意: 如果class1依赖于其他外部库,则必须使用include_directories
包含头文件的路径。
CMakeLists.txt(最外层)至少需要包含以下内容:
cmake_minimum_required(VERSION 2.8)
PROJECT(MyProject)
find_package(OpenCV REQUIRED)
find_package(Caffe REQUIRED)
include_directories( "${PROJECT_SOURCE_DIR}/include" )
add_subdirectory( src )
include_directories( "$Caffe_INCLUDE_DIRS}" )
add_executable(MyProject main.cpp)
target_link_libraries( MyProject ${OpenCV_LIBS} c1 ${Caffe_LIBRARIES} )
现在,在项目目录中执行以下命令,将创建可执行文件
MyProject
并保存在
build
文件夹中。
mkdir build
cd build
cmake ..
make
您可以使用
./MyProject (arguments)
运行您的程序。
编辑2
满足使用CMake构建caffe的要求非常重要,这对于程序正常运行至关重要。您需要使用CMake配置和生成Makefiles。 使用
cmake-gui
或
ccmake
进行此操作,以便您可以设置选项,如CPU_ONLY等。
您应该在caffe内创建一个构建目录,并执行以下基本设置:
mkdir build
cd build
cmake ..
make -jX #X is the number of threads your CPU can handle
现在,你的$HOME文件夹中的.cmake目录包含以下内容:
/home/user/.cmake/packages/Caffe/<random_string>
文件。该文件指向caffe的安装位置(也就是我们的构建目录)。
现在,find_package命令应该可以在其他项目中无错误运行。由于你正在使用CMake,你可以将项目文件夹放在Caffe文件夹外面(最好保持在外面,因为caffe的制作过程会尝试构建你的文件,但会失败)。
注意:如果错误仍然存在,你可以手动设置
Caffe_DIR,进行cmake配置。