我是CMake领域的新手,我想从OpenMVG官方示例中汇编一个示例。但是,我不知道如何通过CMake链接第三个库。以下是我要编译的C ++文件的一部分。
#include "openMVG/features/feature.hpp"
#include "openMVG/features/sift/SIFT_Anatomy_Image_Describer.hpp"
#include "openMVG/features/svg_features.hpp"
#include "openMVG/image/image_io.hpp"
#include "openMVG/image/image_concat.hpp"
#include "openMVG/matching/regions_matcher.hpp"
#include "openMVG/matching/svg_matches.hpp"
//
#include "third_party/stlplus3/filesystemSimplified/file_system.hpp"
#include <cstdlib>
#include <string>
#include <iostream>
我的CMake文件如下。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -std=c++11")
add_executable(openMVG_sample_features_siftPutative siftmatch.cpp)
find_package(Eigen3 3.3 REQUIRED)
target_link_libraries(openMVG_sample_features_siftPutative
openMVG_image
openMVG_features
openMVG_matching
Eigen3::Eigen
${STLPLUS_LIBRARY})
target_compile_definitions(openMVG_sample_features_siftPutative
PRIVATE -DTHIS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
set_property(TARGET openMVG_sample_features_siftPutative PROPERTY FOLDER OpenMVG/Samples)
但是,我不能让cmake查找"third_party/stlplus3/filesystemSimplified/file_system.hpp"
的文件。我已经尝试了好几次,但总是收到file_system.hpp is not found
答案 0 :(得分:0)
就像YaleCheung说的那样,您没有通往收录的路径。
现在第二个问题是您没有向项目提供所用方法的编译对象(来自3rdlib包括)。 要解决此问题,就像对eigen3库所做的一样,在该库中,您具有一个find_package(肯定地)定义了在何处查找include和lib的库,您应该具有与third_party库相同的库。 所以我要补充: