通过 CMake/CMakeLists.txt 为 Xcode 项目包含 Eigen 库

Include Eigen library for Xcode project via CMake/CMakeLists.txt

我的项目有以下 CMakeLists.txt(在我的 "project" 文件夹中)文件。

# define new project
PROJECT(SETUPMARKERTEST)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)

if(UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif(UNIX)

# Set static build for GLFW
SET(BUILD_SHED_LIBS OFF)
ADD_SUBDIRECTORY(ext/glfw-3.1.1)

# Set shared lib build for the rest
SET(BUILD_SHARED_LIBS ON)

# Find dependencies
SET(EIGEN_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/ext/Eigen-3.1.2")
FIND_PACKAGE(OpenCV REQUIRED)

# Set header and source files
SET(MAR_Test_SOURCES
    src/main.cpp
    src/MarkerTracker.h src/MarkerTracker.cpp
    src/PoseEstimation.h src/PoseEstimation.cpp
)

# define executable
ADD_EXECUTABLE(${PROJECT_NAME} ${MAR_Test_SOURCES})

# define additional include directories and linking targets
INCLUDE_DIRECTORIES("ext/glfw-3.1.1/include" ${EIGEN_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS} glfw ${OPENGL_glu_LIBRARY} ${GLFW_LIBRARIES})

我的 Eigen 文件夹在 "project/ext/Eigen/3.1.2/Eigen/"。 不知何故,当我为 Xcode(在 "project/buildXcode/" 和 Cmake .. -G "Xcode" 中)和 运行 创建项目时,Xcode 抛出错误:

所以我想我的 CMakeLists.txt 中有一些错误,不幸的是我收到了那个文件,我是 CMake 的新手,因此我没有自己编写它,也不是很熟练使用 CMake。

你知道导致错误的原因吗?你能用 Eigen 库修复我的项目 运行 的 CMakeLists.txt 吗?

不幸的是,windows 似乎对此没有问题,而 mac 却在喋喋不休。 你只需要使用

#include <Eigen/Dense>

而不是

#include <Eigen\Dense>

...非常愚蠢的错误。